戻る

//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);

  }

}