戻る

//This c++ code is generated by PictoBlox
//Gloabl Variables are declared here
float volt0;
float volt;
void setup() {
//put your setup code here, to run once:
pinMode(33, INPUT);
pinMode(13, OUTPUT);
pinMode(18, OUTPUT);
}
void loop() {
//put your main code here, to run repeatedly:
volt0 = analogRead(33);
volt = (volt0 * (3.3 / 4095));
if((volt > 1)) {
digitalWrite(13, true);
digitalWrite(18, true);
}
else {
digitalWrite(13, false);
digitalWrite(18, false);
}
}
/*
LESSON A-4-2 20231215-LessonA_4_2_ESP32.ino
1) 電圧を計ってみよう。
2) 電圧の値を表示しよう。
3) 電圧の値をグラフで見てみよう。
4) INPUT_PINに電圧をかけて、その値を表示する。
5) INPUT_PINにある大きさ以上の電圧がかかったら、チョロQを動かす。
*/
#define EMG_IN_LEFT 36 //EMG 左入力
#define EMG_IN_RIGHT 39 //EMG 右入力
#define EMG_MONITOR_LEFT 22 //EMG 左活動モニター
#define EMG_MONITOR_RIGHT 23 //EMG 右活動モニター
#define Q_LEFT 18 //チョロQ 左出力
#define Q_RIGHT 19 //チョロQ 右出力
#define IR_SEND_PIN 2 //GPIO2にIR-LEDを接続
#define INPUT_PIN 12 //GPIP12に電圧入力
#define IR_RECEIVER 17 //IR受光器
#define IR_MONITOR_LED 4 //IRのモニターLED
#define WiFi_MONITOR_LED 13 //WiFi接続モニター
#include <IRremote.hpp>
//int x; //A0にはいった値
//float volt; //xを電圧に変換した値。実際の電圧(ボルト)になる。
void setup() {
IrSender.begin();
Serial.begin(115200);
pinMode(INPUT_PIN,INPUT);//電圧入力ピンの初期化
pinMode(Q_LEFT,OUTPUT);//チョロQ 左出力(直進)
pinMode(Q_RIGHT,OUTPUT);//チョロQ 右出力(回転)
pinMode(EMG_MONITOR_LEFT,OUTPUT);
pinMode(EMG_MONITOR_RIGHT,OUTPUT);
}
void loop() {
//39ピンに入力された電圧(x)を読み取る。
int x = analogRead(INPUT_PIN);
//delay(20);//IrSender.sendNEC(address, command, 0);のところで,delay(20);があるのでここではなしでOKのよう。
// 0から3.3Vの電圧が0から4095の4096分割値になっているので、4096で割ってボルトに変換する。
float volt = x * (3.3 / 4095.0);
// 電位の大きさを表示する。
Serial.println(volt);
delay(20);
// 電位が1Vを超えたら、IR-LED(15ピン)からmBotを直進させる信号(↑)を送信する。
if(volt>1){
digitalWrite(Q_LEFT,HIGH);
digitalWrite(EMG_MONITOR_LEFT,HIGH);
delay(100);
}else{
digitalWrite(Q_LEFT,LOW);
digitalWrite(EMG_MONITOR_LEFT,LOW);
}
}