ESP32のプログラミング学習で使用するプログラムを掲載しています。
ファイル名:helloworld.cpp
#include <Arduino.h>
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello, World!");
delay(1000);
}
ファイル名:onetoten.cpp
#include <Arduino.h>
int i; // iは「足す数字」
int j = 0; // jは「足される数字で、最初は0」
void setup() {
Serial.begin(115200);
for(i=1;i<11;i++) { // iに1から10まで順に代入しながら、{}のあいだの命令を繰り返す
j=j+i;
}
Serial.print("The answer is ");
Serial.println(j);
}
void loop() {
}
少数点以下の数字が出るので、float型変数のjに代入する。次にjをint型変数のkに代入する。
ファイル名:7dewaru.cpp
#include <Arduino.h>
int i = 500;
float j;
int k;
void setup () {
Serial.begin(115200);
j=i/7;
k=j;
Serial.print("j= ");
Serial.print(j,4);
Serial.print(" k= ");
Serial.println(k);
}
void loop () {
}
ESP32と実験基板による実習(1)
ファイル名:ledswm
#include <Arduino.h>
void setup() {
pinMode(27,OUTPUT);
}
void loop() {
digitalWrite(27,HIGH);
delay(1000);
digitalWrite(27,LOW);
delay(1000);
}
ESP32と実験基板による実習(2)
ファイル名:ledswm.cpp
#include <Arduino.h>
#define ledpin 17
#define swpin 5
int sw=0; //swを整数型で定義:
void setup() {
// put your setup code here, to run once:
pinMode(ledpin,OUTPUT);
pinMode(swpin,INPUT_PULLUP); //swepinを入力用に設定:
}
void loop() {
// put your main code here, to run repeatedly:
sw=digitalRead(swpin); //swpinの状態HIGHかLOWの読み込み:
if (sw==LOW){ //swがON(SWの電位はLOW)判定SW=LOWとしない:
digitalWrite(ledpin,HIGH); //LED点灯消灯:
}
if (sw==HIGH){digitalWrite(ledpin,LOW);} //swがOFF(SWの電位はHIGH)判定SW=HIGHとしない:
}
ESP32と実験基板による実習(3)
ファイル名:ledswa.cpp
#include <Arduino.h>
#define ledpin 16
#define swpin 5
int sw=0; //swを整数型で定義:
boolean vs=false; //vsをbooleanで定義 消灯をfalseとしている:
void setup() {
// put your setup code here, to run once:
pinMode(ledpin,OUTPUT);
pinMode(swpin,INPUT_PULLUP); //swepinを入力用に設定:
}
void loop() {
// put your main code here, to run repeatedly:
sw=digitalRead(swpin); //swpinの状態HIGHかLOWの読み込み
if (sw==LOW){ //オルタネータリ動作処理:
vs=!vs; //swがONされたらvsの状態を反転:
if (vs==false){digitalWrite(ledpin,HIGH);} //swONが奇数回 点灯:
if (vs==true){digitalWrite(ledpin,LOW);} //swONが偶数回 消灯:
delay(200); //チャタリング処理:
while(sw==0){sw=digitalRead(swpin);} //スイッチOFF復帰確認:
}
}
ESP32と実験基板による実習(4)
ファイル名:4ledsw.cpp
#include <Arduino.h>
#define ledR 27 // 記号ledRは27とする
#define ledG 17 // 記号ledGは17とする
#define ledB 16 // 記号ledBは16とする
#define ledY 15 // 記号ledYは5とする
#define swpin 5 // 記号swpinは15とする
int sw=0; int cnt=0; // swとcntを整数型で定義
void setup () {
pinMode (ledR, OUTPUT);
pinMode (ledG, OUTPUT);
pinMode (ledB, OUTPUT);
pinMode (ledY, OUTPUT);
pinMode (swpin, INPUT_PULLUP); // swpin(15ピン)は入力ピンに設定
}
void loop () {
delay(100);
while(sw==0){sw=digitalRead(swpin);} // SW OFF確認
sw=digitalRead(swpin); // swpinの状態HIGHかLOWの読み込み:
if (sw==LOW){ cnt++; } // スイッチ回数カウント:
if (cnt>=5){cnt=0;} // カウント繰り返し制限処理0→1→2→3→4→0・・
switch(cnt){
case(1): // LED赤点灯
digitalWrite(ledR,HIGH);
digitalWrite(ledG,LOW);
digitalWrite(ledB,LOW);
digitalWrite(ledY,LOW);
break;
case(2): // LED緑点灯
digitalWrite(ledR,LOW);
digitalWrite(ledG,HIGH);
digitalWrite(ledB,LOW);
digitalWrite(ledY,LOW);
break;
case(3): // LED青点灯
digitalWrite(ledR,LOW);
digitalWrite(ledG,LOW);
digitalWrite(ledB,HIGH);
digitalWrite(ledY,LOW);
break;
case(4): // LED黄点灯
digitalWrite(ledR,LOW);
digitalWrite(ledG,LOW);
digitalWrite(ledB,LOW);
digitalWrite(ledY,HIGH);
break;
default: // 消灯
digitalWrite(ledR,LOW);
digitalWrite(ledG,LOW);
digitalWrite(ledB,LOW);
digitalWrite(ledY,LOW);
break;
}
}
ESP32と実験基板による実習(5)
ファイル名:batterychecker.cpp
#include <Arduino.h>
long val = 0;
float v1;
void setup() {
Serial.begin(115200);
pinMode(39,ANALOG);
pinMode(16,OUTPUT);
pinMode(27,OUTPUT);
analogSetAttenuation(ADC_11db);
}
void loop() {
val = analogRead(39);
v1 = val*3300/4095;
Serial.print("Read Value = ");
Serial.println(val);
Serial.print("V = ");
Serial.print(v1);
Serial.println(" mV");
Serial.println("");
if(v1>=1400 && v1<1700){
digitalWrite(16,HIGH);
digitalWrite(27, LOW);
}else{
digitalWrite(16,LOW);
digitalWrite(27, HIGH);
}
delay(500);
}
ESP32と実験基板による実習(6)
ファイル名:servo.cpp
#include <Arduino.h>
#include <ESP32Servo.h>
#define SERVO_PIN 13
Servo myServo;
void setup() {
myServo.attach(SERVO_PIN);
}
void loop() {
myServo.write(0);
delay(1000);
myServo.write(90);
delay(1000);
myServo.write(180);
delay(1000);
myServo.write(90);
delay(1000);
}
ESP32と実験基板による実習(7)
ファイル名:HCSR04.cpp
#include <Arduino.h>
#define Trig 14
#define Echo 12
float Distance = 0.00;
int Search () {
float Duration = 0.0;
float CM = 0.0;
digitalWrite (Trig, LOW);
delayMicroseconds (2);
digitalWrite (Trig, HIGH);
delayMicroseconds (10);
digitalWrite (Trig, LOW);
Duration = pulseIn (Echo, HIGH);
CM = (Duration / 58.8);
return CM;
}
void setup () {
Serial.begin(115200);
pinMode (Trig, OUTPUT);
pinMode (Echo, INPUT);
}
void loop () {
delay (1000);
Distance = Search ();
Serial.print(F("\r\nDistance Cm: "));
Serial.println(Distance);
}