1,0×
187 просмотров · 4 месяца назад
00:00/57:24
Описание
10 простых программ для ардуино.
4 месяца назад • 187 просмотров13 поставили "Нравится"
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, OUTPUT);}
void loop() {
for(int i = 0; i <= 255; i++) {
analogWrite(BLU, 255 - i);
delay(10);}
for(int i = 255; i >= 0; i--) {
analogWrite(BLU, 255 - i);
delay(10);}}