Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arduino Dojo

suzakutakumi
March 30, 2021
15

Arduino Dojo

Arduino Unoを使った、マイコン初心者向けの資料です。

suzakutakumi

March 30, 2021
Tweet

Transcript

  1. 目次 1. マイコンとは 2. Arduino IDEのsetup 3. Lチカ 4. アナログ出力

    5. ボタン入力1 6. ボタン入力2&シリアル通信 7. 時間処理
  2. 3-1. プログラム説明 void setup() { pinMode(5,OUTPUT); } void loop() {

    digitalWrite(5,HIGH); delay(500); digitalWrite(5,LOW); delay(500); }
  3. 3-1-5. プログラム解説 void setup() { pinMode(5,OUTPUT); //5ピンを出力ピンにする } void loop()

    { digitalWrite(5,HIGH); //5ピンから5Vを出力する delay(500); //出力状態を維持して500ms止める digitalWrite(5,LOW); //5ピンから0Vを出力する delay(500); //出力状態を維持して500ms止める }
  4. 4-1. プログラム説明 void setup() { pinMode(5,OUTPUT); } int i; void

    loop() { for(i=0;i<256;i++){ analogWrite(5,i); delay(2); } for(i=255;i>=0;i--){ analogWrite(5,i); delay(2); } }
  5. 5-1. プログラム説明 #define BTN 3 #define LED 5 void setup()

    { pinMode(LED,OUTPUT); pinMode(BTN,INPUT); } void loop() { if(digitalRead(BTN)==LOW){ digitalWrite(LED,HIGH); delay(1000); digitalWrite(LED,LOW); } }
  6. 6-1. プログラム説明 #define BTN 3 #define LED 5 void setup()

    { Serial.begin(9600); pinMode(LED,OUTPUT); pinMode(BTN,INPUT_PULLUP); } void loop() { if(digitalRead(BTN)==LOW){ Serial.print(BTN); Serial.println(" pin is pressed!"); digitalWrite(LED,HIGH); delay(1000); digitalWrite(LED,LOW); } }
  7. 7-1. プログラム説明 #define LED 5 void setup() { Serial.begin(9600); pinMode(LED,

    OUTPUT); } void loop() { if (Serial.available() > 0) { int c = Serial.read(); if (c == 'H') { digitalWrite(LED, HIGH); } else if (c == 'L') { digitalWrite(LED, LOW); } } }
  8. 8-1. プログラム説明 #define RED 5 #define BLUE 13 void setup()

    { pinMode(RED, OUTPUT); pinMode(BLUE, OUTPUT); } unsigned long tR=millis(),tB=millis(); int INTERVAL_R=500,INTERVAL_B=3000; int outR=LOW,outB=LOW; void loop() { if(millis()-tR>=INTERVAL_R){ tR=millis(); outR=!outR; digitalWrite(RED,outR); } if(millis()-tB>=INTERVAL_B){ tB=millis(); outB=!outB; digitalWrite(BLUE,outB); } }
  9. 8-1-2. 仕組み説明 unsigned long tR=millis(); void loop() { if(millis()-tR>=100){ tR=millis();

    outR=!outR; digitalWrite(RED,outR); } } tRが前に実行した時間 millis()-tRは 現在の時間ー全回実行した時間 になる 上のプログラムを組み合わせることで、delayを使わずに複数の処理が実行できる