10 простых программ для ардуино.
1. Мигаем светодиодом void setup() { pinMode (13, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay (1000);} 2. Мигают два светодиода void setup() { pinMode (9, OUTPUT); pinMode (8, OUTPUT);} void loop() { digitalWrite (8, HIGH); delay (100); digitalWrite (8, LOW); delay (100); digitalWrite (8, HIGH); delay (100); digitalWrite (8, LOW); delay (100); digitalWrite (8, HIGH); delay (100); digitalWrite (8, LOW); delay (500); digitalWrite (9, HIGH); delay (100); digitalWrite (9, LOW); delay (100); digitalWrite (9, HIGH); delay (100); digitalWrite (9, LOW); delay (100); digitalWrite (9, HIGH); delay (100); digitalWrite (9, LOW); delay (500);} 3. Бегущие огни void setup() { pinMode (9, OUTPUT); pinMode (8, OUTPUT); pinMode (7, OUTPUT); pinMode (6, OUTPUT);} void loop() { digitalWrite (6, HIGH); delay (500); digitalWrite (6, LOW); delay (500); digitalWrite (7, HIGH); delay (500); digitalWrite (7, LOW); delay (500); digitalWrite (8, HIGH); delay (500); digitalWrite (8, LOW); delay (500); digitalWrite (9, HIGH); delay (500); digitalWrite (9, LOW); delay (500);} 4. Включение и отключение одной кнопкой int knopka=0; void setup () {pinMode(2,OUTPUT); pinMode(A0,INPUT);} void loop () {if(digitalRead(A0)==LOW&&knopka==0) {delay(100); knopka++; digitalWrite(2, !digitalRead(2));} if(digitalRead(A0)==HIGH&&knopka==1) {knopka=0;}} 5. Включение СДО разными кнопками int b1 = 2; int b2 = 3; int led = 4; void setup() { pinMode(led, OUTPUT); pinMode(b1, INPUT); pinMode(b2, INPUT);} void loop(){ if (digitalRead(b1) == 0){ digitalWrite(led, HIGH);} if (digitalRead(b2) == 0) {digitalWrite(led, LOW);}} 6. Переключение светодиодов одной кнопкой int LED[3] = {2, 3, 4}; int sizeof_LED = 3; int current_led_index = 1; const int BUTTON = A0; bool but_state = false; void setup() { for(int i = 0; i ﹤ sizeof_LED; i++) {pinMode(LED[i], OUTPUT); }digitalWrite(LED[current_led_index], HIGH); pinMode(BUTTON, INPUT); }void loop() { bool current_but_state = digitalRead(BUTTON); if( (current_but_state == true) && (but_state == false) ) {but_state = true; digitalWrite(LED[current_led_index], LOW); current_led_index = check_contact_param(current_led_index + 1); digitalWrite(LED[current_led_index], HIGH); }else if( (current_but_state == false) && (but_state == true) ) {but_state = false;}delay(5); }int check_contact_param (int param) {if (param ﹥= sizeof_LED) return 0; else return param;} 7. Аналоговая клавиатура и СДО Считывание клавиатуры в монитор порта. int analogPin = A0; int val = 0; void setup () {Serial.begin (9600); void loop () {val = analogRead (analogPin); Serial.println (val); delay (1000);} Для работы #define R_LED 2 #define B_LED 3 #define G_LED 4 #define Y_LED 5 int val = 0; int val1 = 0; int button1 = 0; int button2 = 0; int button3 = 0; int button4 = 0; void setup() { pinMode(R_LED, OUTPUT); pinMode(G_LED , OUTPUT); pinMode(Y_LED, OUTPUT); pinMode(B_LED, OUTPUT); pinMode(A0, INPUT);} void loop() { val = analogRead(A0); delay(50); val1 = analogRead(A0);{ if (val ﹥= 85 && val ﹤ 95 && val1 ﹥= 85 && val1 ﹤ 95) button1=1; if (val ﹥= 165 && val ﹤ 175 && val1 ﹥= 165 && val1 ﹤ 175) button2=1; if (val ﹥= 230 && val ﹤ 240 && val1 ﹥= 230 && val1 ﹤ 240) button3=1; if (val ﹥= 285 && val ﹤ 295 && val1 ﹥= 285 && val1 ﹤ 295) button4=1; if(300﹤val) button1=button2=button3=button4=0; else if(button1==1){ digitalWrite (R_LED, HIGH); digitalWrite (B_LED, LOW); digitalWrite (G_LED, LOW); digitalWrite (Y_LED, LOW); } else if(button2==1) { digitalWrite(R_LED, LOW); digitalWrite(B_LED, HIGH); digitalWrite(G_LED, LOW); digitalWrite(Y_LED, LOW);} else if(button3==1) { digitalWrite(R_LED, LOW); digitalWrite(B_LED, LOW); digitalWrite(G_LED, HIGH); digitalWrite(Y_LED, LOW); } else if(button4==1) { digitalWrite(R_LED, LOW); digitalWrite(B_LED, LOW); digitalWrite(G_LED, LOW); digitalWrite(Y_LED, HIGH);}}} 8. Дистанционное включение светодиода любым пультом Считывания ПДУ #include "IRremote.h" IRrecv irrecv(A0); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if ( irrecv.decode( &results )) { Serial.println( results.value, HEX ); irrecv.resume(); }} Для работы #include "IRremote.h" IRrecv irrecv(A0); decode_results results; int knopka=0; void setup () {irrecv.enableIRIn(); pinMode(2,OUTPUT); pinMode(A0,INPUT); pinMode(A1,INPUT);} void loop (){ if(digitalRead(A1)==LOW&&knopka==0){ delay(500); knopka++; digitalWrite(2, !digitalRead(2));} if(digitalRead(A1)==HIGH&&knopka==1){ knopka=0;} if ( irrecv.decode( &results )) { switch ( results.value ) { case 0xFFA25D: knopka++; digitalWrite(2, !digitalRead(2)); break;} irrecv.resume(); }} 9. Плавный розжиг и угасание светодиода #define BLU 3 void setup() { pinMode(BLU, OU
1. Мигаем светодиодом void setup() { pinMode (13, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay (1000);} 2. Мигают два светодиода void setup() { pinMode (9, OUTPUT); pinMode (8, OUTPUT);} void loop() { digitalWrite (8, HIGH); delay (100); digitalWrite (8, LOW); delay (100); digitalWrite (8, HIGH); delay (100); digitalWrite (8, LOW); delay (100); digitalWrite (8, HIGH); delay (100); digitalWrite (8, LOW); delay (500); digitalWrite (9, HIGH); delay (100); digitalWrite (9, LOW); delay (100); digitalWrite (9, HIGH); delay (100); digitalWrite (9, LOW); delay (100); digitalWrite (9, HIGH); delay (100); digitalWrite (9, LOW); delay (500);} 3. Бегущие огни void setup() { pinMode (9, OUTPUT); pinMode (8, OUTPUT); pinMode (7, OUTPUT); pinMode (6, OUTPUT);} void loop() { digitalWrite (6, HIGH); delay (500); digitalWrite (6, LOW); delay (500); digitalWrite (7, HIGH); delay (500); digitalWrite (7, LOW); delay (500); digitalWrite (8, HIGH); delay (500); digitalWrite (8, LOW); delay (500); digitalWrite (9, HIGH); delay (500); digitalWrite (9, LOW); delay (500);} 4. Включение и отключение одной кнопкой int knopka=0; void setup () {pinMode(2,OUTPUT); pinMode(A0,INPUT);} void loop () {if(digitalRead(A0)==LOW&&knopka==0) {delay(100); knopka++; digitalWrite(2, !digitalRead(2));} if(digitalRead(A0)==HIGH&&knopka==1) {knopka=0;}} 5. Включение СДО разными кнопками int b1 = 2; int b2 = 3; int led = 4; void setup() { pinMode(led, OUTPUT); pinMode(b1, INPUT); pinMode(b2, INPUT);} void loop(){ if (digitalRead(b1) == 0){ digitalWrite(led, HIGH);} if (digitalRead(b2) == 0) {digitalWrite(led, LOW);}} 6. Переключение светодиодов одной кнопкой int LED[3] = {2, 3, 4}; int sizeof_LED = 3; int current_led_index = 1; const int BUTTON = A0; bool but_state = false; void setup() { for(int i = 0; i ﹤ sizeof_LED; i++) {pinMode(LED[i], OUTPUT); }digitalWrite(LED[current_led_index], HIGH); pinMode(BUTTON, INPUT); }void loop() { bool current_but_state = digitalRead(BUTTON); if( (current_but_state == true) && (but_state == false) ) {but_state = true; digitalWrite(LED[current_led_index], LOW); current_led_index = check_contact_param(current_led_index + 1); digitalWrite(LED[current_led_index], HIGH); }else if( (current_but_state == false) && (but_state == true) ) {but_state = false;}delay(5); }int check_contact_param (int param) {if (param ﹥= sizeof_LED) return 0; else return param;} 7. Аналоговая клавиатура и СДО Считывание клавиатуры в монитор порта. int analogPin = A0; int val = 0; void setup () {Serial.begin (9600); void loop () {val = analogRead (analogPin); Serial.println (val); delay (1000);} Для работы #define R_LED 2 #define B_LED 3 #define G_LED 4 #define Y_LED 5 int val = 0; int val1 = 0; int button1 = 0; int button2 = 0; int button3 = 0; int button4 = 0; void setup() { pinMode(R_LED, OUTPUT); pinMode(G_LED , OUTPUT); pinMode(Y_LED, OUTPUT); pinMode(B_LED, OUTPUT); pinMode(A0, INPUT);} void loop() { val = analogRead(A0); delay(50); val1 = analogRead(A0);{ if (val ﹥= 85 && val ﹤ 95 && val1 ﹥= 85 && val1 ﹤ 95) button1=1; if (val ﹥= 165 && val ﹤ 175 && val1 ﹥= 165 && val1 ﹤ 175) button2=1; if (val ﹥= 230 && val ﹤ 240 && val1 ﹥= 230 && val1 ﹤ 240) button3=1; if (val ﹥= 285 && val ﹤ 295 && val1 ﹥= 285 && val1 ﹤ 295) button4=1; if(300﹤val) button1=button2=button3=button4=0; else if(button1==1){ digitalWrite (R_LED, HIGH); digitalWrite (B_LED, LOW); digitalWrite (G_LED, LOW); digitalWrite (Y_LED, LOW); } else if(button2==1) { digitalWrite(R_LED, LOW); digitalWrite(B_LED, HIGH); digitalWrite(G_LED, LOW); digitalWrite(Y_LED, LOW);} else if(button3==1) { digitalWrite(R_LED, LOW); digitalWrite(B_LED, LOW); digitalWrite(G_LED, HIGH); digitalWrite(Y_LED, LOW); } else if(button4==1) { digitalWrite(R_LED, LOW); digitalWrite(B_LED, LOW); digitalWrite(G_LED, LOW); digitalWrite(Y_LED, HIGH);}}} 8. Дистанционное включение светодиода любым пультом Считывания ПДУ #include "IRremote.h" IRrecv irrecv(A0); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if ( irrecv.decode( &results )) { Serial.println( results.value, HEX ); irrecv.resume(); }} Для работы #include "IRremote.h" IRrecv irrecv(A0); decode_results results; int knopka=0; void setup () {irrecv.enableIRIn(); pinMode(2,OUTPUT); pinMode(A0,INPUT); pinMode(A1,INPUT);} void loop (){ if(digitalRead(A1)==LOW&&knopka==0){ delay(500); knopka++; digitalWrite(2, !digitalRead(2));} if(digitalRead(A1)==HIGH&&knopka==1){ knopka=0;} if ( irrecv.decode( &results )) { switch ( results.value ) { case 0xFFA25D: knopka++; digitalWrite(2, !digitalRead(2)); break;} irrecv.resume(); }} 9. Плавный розжиг и угасание светодиода #define BLU 3 void setup() { pinMode(BLU, OU
