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

Arduino Dojo

suzakutakumi
March 30, 2021
8

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を使わずに複数の処理が実行できる