Arduino Unoに以下のプログラムを書き込みました。
c++
1#include <Arduino.h> 2#include <ArduinoSTL.h> 3 4void setup() { 5 Serial.begin(9600); 6} 7 8void loop() { 9 Serial.println(10); 10 delay(1000); 11 12 Serial.println(20); 13 delay(1000); 14} 15
ターミナルで
bash
1screen /dev/cu.usbmodem123 9600
と入力するとシリアルモニタに10と20が一秒おきに交互に出力されます。
出力されるということはシリアル通信自体はうまくいっているはずです。
しかし、受け取った文字列をモニタに表示するだけでなく、以下のようにプログラムで扱いたいです。
c++
1int main() { 2 string str = readSerial(); 3 switch (str) { 4 case "1": 5 func1(); 6 break; 7 case "2": 8 func2(); 9 break; 10 } 11}
このようなことは可能でしょうか?
別にシリアル通信にこだわるつもりはなく、要するにArduinoで受け取った情報に応じて処理を変えるプログラムを作りたいです。
ちなみにMacOSで、IDEはVScodeを使っていて、arduino-cliを用いて以下のようにコンパイルし、arduinoへ書き込んでいます。
bash
1arduino-cli compile -b arduino:avr:uno sketch 2arduino-cli upload -p /dev/cu.usbmodem123 -b arduino:avr:uno sketch
ご回答よろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー