Содержание:
1. Работа с кнопкой: управление состоянием светодиода1 |
|
Название | Работа с кнопкой: управление состоянием светодиода |
Описание | При нажатии кнопки светодиод загорается; при отпускании кнопки светодиод гаснет |
Схемы | |
Текст | void setup() {pinMode(13, OUTPUT); pinMode(2, INPUT); delay(1000);} void loop() {if (digitalRead(2)==HIGH) {digitalWrite(13, HIGH);} else {digitalWrite(13, LOW);}} |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
2 |
|
Название | Работа с кнопкой: triger |
Описание | При нажатии на кнопку светодиод и динамик включаются, при последующих нажатиях изменяют состояние на противоположное |
Схемы | |
Текст | bool triger=0; void onof() {if (triger==1){digitalWrite(13, HIGH); digitalWrite(5, HIGH); } else {digitalWrite(13, LOW); digitalWrite(5, LOW);}} void setup() {pinMode(5, OUTPUT); pinMode(13, OUTPUT); pinMode(2, INPUT); delay(1000);} void loop() {if (digitalRead(2)==HIGH) { triger=!triger; onof(); delay(200); }} |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
3 |
|
Название | Сирена |
Описание | При нажатии на кнопку начинает работать сирена (каждые 0,1 с динамик меняет свое состояние на противоположное (вкл/выкл)) |
Схемы | |
Текст | bool st_tm=0; long st_vr=0; int tm_p=100; bool ton=0; void timer1() { if(millis()- st_vr >=tm_p){ st_vr=millis(); ton=!ton; {digitalWrite(13,ton); digitalWrite(5, ton); }} } void led_of() { digitalWrite(13, 0); digitalWrite(5, 0); } void setup() { pinMode(5, OUTPUT); pinMode(13, OUTPUT); pinMode(2, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(2)==HIGH) {st_tm=!st_tm; led_of() ; delay(200); } if ( st_tm==1){timer1();} } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
4 |
|
Название | Работа с монитором последовательного порта |
Описание | Через каждые 1000мс определяется текущее время по функции millis() и выводится в монитор последовательного порта; синхронно зажигается светодиод |
Схемы | |
Текст | long vremy; int s=0; void setup() { pinMode(13, OUTPUT); Serial.begin(9600); } void loop() { s=s+1; vremy=millis(); Serial.print("N="); Serial.print(s); Serial.print(" Tek vr="); Serial.print(vremy); Serial.println(" milisek!"); digitalWrite(13,1);delay(500);digitalWrite(13,0);delay(500); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
5 |
|
Название | Работа с кнопкой: монитор последовательного порта |
Описание | при однократном нажатии на кнопку определяется текущее время по функции millis()и выводится ее значение в монитор последовательного порта |
Схемы | |
Текст | long vremy; void setup() { pinMode(2, INPUT); Serial.begin(9600); } void loop() { if (digitalRead(2)==HIGH) { vremy=millis(); Serial.print("Tek vr="); Serial.print(vremy); Serial.println(" milisek!"); delay(200);} } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
6 |
|
Название | Работа с аналоговым портом: потенциометр |
Описание | Аналоговый порт связан с потенциометром, значение аналогового порта выводится в монитор последовательного порта; при значении аналогового порта 700 включаются светодиод и динамик |
Схемы | |
Текст | void setup() { pinMode(5, OUTPUT); pinMode(13, OUTPUT); pinMode(2, INPUT); Serial.begin(9600); } void loop() { int port=analogRead(A0); if(port==700){digitalWrite(13,HIGH); digitalWrite(5,HIGH); } else {digitalWrite(13,LOW); digitalWrite(5,LOW);} Serial.print("A0="); Serial.println(port); delay(100); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
7 |
|
Название | Секундомер |
Описание | Отсчет времени (чч:мм:сс) работы микроконторллера; каждую секунду загорается светодиод |
Схемы | |
Текст | bool mig=0; int trst=0; long vrst=0; int sk0=0; int sk1=0; int mn0=0; int mn1=4; int ch0=3; int ch1=2; int chsum=0; void clock() { if (trst==0){trst=1; vrst=millis();} if(millis()-vrst>=1000) {vrst=millis(); sk0=sk0+1; mig=!mig; digitalWrite(13,mig); if (sk0>9){sk1=sk1+1; sk0=0;} if(sk1>5){mn0=mn0+1; sk1=0;} if (mn0>9){mn1=mn1+1;mn0=0;} if (mn1>5){ch0=ch0+1; mn1=0; chsum=ch1*10+ch0; } if (ch0>9){ch1=ch1+1;ch0=0;} if (chsum>23){sk0=0;sk1=0;mn0=0; mn1=0; ch0=0; ch1=0; chsum=0;} String vremy=String(ch1)+String(ch0)+":"+String(mn1)+String(mn0)+"."+String(sk1)+String(sk0); Serial.print("Tek vremy="); Serial.println(vremy); } } void setup() { pinMode(13, OUTPUT); Serial.begin(9600); Serial.println("Serial Chasy S! "); } void loop() { clock() ; delay(10); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
8 |
|
Название | Работа с аналоговым портом: вывод звука |
Описание | Вывод звука с частотой, равной масштабированному значению аналогового порта, через динамик |
Схемы | |
Текст | void zvuk(int s) { tone(5, s); //noTone(5); } void setup() { pinMode(5, OUTPUT); pinMode(13, OUTPUT); pinMode(2, INPUT); Serial.begin(9600); } void loop() { int port=analogRead(A0); int s= map(port, 0, 1023, 20, 5200); tone(5, s); Serial.print("A0="); Serial.print(port); Serial.print(" ton="); Serial.print(s); Serial.println(" Hg"); delay(100); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
9 |
|
Название | Термометр |
Описание | Измерение температуры термистором и вывод ее значения на жк-экран |
Схемы | |
Текст | #include #include LiquidCrystal_I2C lcd(0x3f,16,2); //LiquidCrystal_I2C lcd(0x27,16,2); //#define TERMIST_B 4300 #define TERMIST_B 3500 //#define VIN 5.0 #define VIN 4.85 String data=""; //String t3=""; float voltage=0; void termo() { voltage=analogRead(A0)*VIN / 1024.0; voltage=voltage / (VIN-voltage); voltage=(1./(1./(TERMIST_B)*log(voltage)+1./(25.+273.))-273); char tmp[10]; dtostrf(voltage,1,2,tmp); data=" T2="+String(tmp); delay(1); } void setup() { lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print(" KOLPINKURS.RU "); lcd.setCursor(0, 1); lcd.print(" TEMPERATUTE "); delay(1000); Serial.begin(9600); } void loop() { termo(); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(2, 1); lcd.print(data); Serial.println(data); delay(1000); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
10 |
|
Название | Монитор порта: управление состоянием светодиода |
Описание | Управление состоянием светодиода с помощью монитора порта (1=вкл, 2=выкл) |
Схемы | |
Текст | byte buf=0; String stroka=""; int h=0; void opros_kl() { if(Serial.available()){ buf=1; stroka=""; delay(5);} while(0 < Serial.available()) { char c=Serial.read(); stroka=stroka+char(c); } h=stroka.toInt(); } void setup() { Serial.begin(9600); pinMode(13, OUTPUT); Serial.println("Upravlyem Svetodiodom 1- on 2- off"); } void loop() { opros_kl(); if (buf==1){buf=0; Serial.println(h); if ( h==1) { digitalWrite(13,1);} if ( h==2) { digitalWrite(13,0);} } delay(10); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
11 |
|
Название | Жк-экран: поздравление |
Описание | Вывод на жк-экран поздравления с Новым Годом |
Схемы | |
Текст | #include #include //LiquidCrystal_I2C lcd(0x3f,16,2); LiquidCrystal_I2C lcd(0x27,16,2); byte newChar1[8]= { 0b00011, 0b00101, 0b01001, 0b01001, 0b01001, 0b10001, 0b10001, 0b00000 }; byte newChar2[8]= { 0b01111, 0b10001, 0b10001, 0b01111, 0b00101, 0b01001, 0b10001, 0b00000 }; byte newChar3[8]= { 0b11111, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b00000 }; byte newChar4[8] = { 0b10001, 0b10011, 0b10011, 0b10101, 0b11001, 0b11001, 0b10001, 0b00000 }; byte newChar5[8] = { 0b00100, 0b01010, 0b01010, 0b01010, 0b01010, 0b11111, 0b10001, 0b00000 }; byte newChar6[8] = { 0b10001, 0b10001, 0b01001, 0b00110, 0b00010, 0b00100, 0b01000, 0b00000 }; byte newChar7[8] = { 0b01110, 0b10101, 0b10101, 0b01110, 0b00100, 0b00100, 0b00100, 0b00000 }; byte newChar8[8]= { 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b00000 }; void setup() { lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.createChar(0, newChar1); lcd.createChar(1, newChar2); lcd.createChar(2, newChar3); lcd.createChar(3, newChar4); lcd.createChar(4, newChar5); lcd.createChar(5, newChar6); lcd.createChar(6, newChar7); lcd.createChar(7, newChar8); } void loop() { lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("C HOBblM "); lcd.write(2); lcd.print("O"); lcd.write(4); lcd.print("OM!"); delay (5000); lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print(" AKA"); lcd.write(4); lcd.print("EM"); lcd.write(3); lcd.write(1); lcd.setCursor(0, 1); lcd.print(" "); lcd.write(3); lcd.print("H"); lcd.write(6); lcd.print("OPMAT"); lcd.write(3); lcd.print("K"); lcd.write(3); lcd.print("!"); delay (5000); lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 0); lcd.print(" HA"); lcd.write(4); lcd.write(3); lcd.write(7); delay (5000); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
12 |
|
Название | Жк-экран: имя |
Описание | Вывод на жк-экран своего имени |
Схемы | |
Текст | #include #include //LiquidCrystal_I2C lcd(0x3f,16,2); LiquidCrystal_I2C lcd(0x27,16,2); byte newChar1[8]= { 0b00011, 0b00101, 0b01001, 0b01001, 0b01001, 0b10001, 0b10001, 0b00000 }; byte newChar2[8]= { 0b01111, 0b10001, 0b10001, 0b01111, 0b00101, 0b01001, 0b10001, 0b00000 }; byte newChar3[8]= { 0b11111, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b00000 }; byte newChar4[8] = { 0b10001, 0b10011, 0b10011, 0b10101, 0b11001, 0b11001, 0b10001, 0b00000 }; byte newChar5[8] = { 0b00100, 0b01010, 0b01010, 0b01010, 0b01010, 0b11111, 0b10001, 0b00000 }; byte newChar6[8] = { 0b10001, 0b10001, 0b01001, 0b00110, 0b00010, 0b00100, 0b01000, 0b00000 }; void setup() { lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.createChar(0, newChar1); lcd.createChar(1, newChar2); lcd.createChar(2, newChar3); lcd.createChar(3, newChar4); lcd.createChar(4, newChar5); lcd.createChar(5, newChar6); } void loop() { lcd.setCursor(0, 0); lcd.print("C"); lcd.write(5); lcd.write(0); lcd.write(1); lcd.write(2); lcd.write(3); lcd.print("H"); lcd.setCursor(0, 1); lcd.print("A"); lcd.write(0); lcd.print("EKCAH"); lcd.write(4); lcd.print("P"); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
13 |
|
Название | Фототир |
Описание | При нажатии на кнопку происходит измерение уровня освещенности по показаниям фоторезистора; если во время работы красного светодиода уровень освещенности фоторезистора меняется в большую сторону, то загорается зеленый светодиод, включается динамик, к числу на жк-экране прибавляется 1 |
Схемы | |
Текст | #include #include LiquidCrystal_I2C lcd(0x3f,16,2); //LiquidCrystal_I2C lcd(0x27,16,2); int lightPin = A2; int porog=60; int ch=0; int ft_trig=0; int buttonPin = 10; int potPin = A1; int ledPin = 8; int vl = 0; long timers=0; int p = 5; long vrs=0; int tmm=500; int sh=0; int sh_pop=0; int shtm=0; int fl_ftir=0; int sh_sk=0; void popal() { if(millis()-vrs >=tmm){ vrs=millis(); sh = sh + sh_pop; //if (sh>2){digitalWrite(6, LOW);digitalWrite(8, LOW); sh=0; sh_pop=0; shtm=1;} if (sh>2){digitalWrite(9, LOW);digitalWrite(8, LOW); sh=0; sh_pop=0; shtm=1;} }} long vrst_sk=0; int ind_sk=250; //int sh_sk=0; //int shtm=0; //int fl_ftir=0; void timer1() { if(millis()-vrst_sk >=ind_sk){ vrst_sk=millis(); sh_sk = sh_sk + shtm; if(sh_sk==30) {digitalWrite(ledPin, HIGH);} if(sh_sk==1) {digitalWrite(ledPin, HIGH);} if(sh_sk==2) {digitalWrite(ledPin, LOW);} if(sh_sk==3) {digitalWrite(ledPin, HIGH);} if(sh_sk==4) {digitalWrite(ledPin, LOW);} if(sh_sk==5) {digitalWrite(ledPin, HIGH);} if(sh_sk==6) {digitalWrite(ledPin, LOW);} if(sh_sk>6 & sh_sk<16) {fl_ftir=1; digitalWrite(ledPin, HIGH);} if(sh_sk>16) {digitalWrite(ledPin, LOW); fl_ftir=0;} if(sh_sk>26) {sh_sk=0;} }} void zvuk() { tone (p, 500); delay(100); tone(p, 1000); delay(100); tone(p, 1500); delay(100); tone(p, 2000); delay(100); tone(p, 2500); noTone(5);}} void fototir() { vl=analogRead(lightPin); if (porog==0) {porog=60;} if (porog-vl>20) { if (ft_trig==0) {ft_trig=1; ch=ch+1; digitalWrite(9, HIGH); //digitalWrite(6, HIGH); digitalWrite(8, LOW); shtm=0; sh_sk=0; fl_ftir=0; sh_pop=1; //digitalWrite(9, HIGH); //delay(5); //digitalWrite(9, LOW); zvuk(); String zap=" Popal! Chet= "+String(ch); lcd.clear(); lcd.setCursor(0, 0); lcd.print(zap); lcd.setCursor(0, 1); lcd.print("Rezult="); lcd.print(1023-vl); } } else {ft_trig=0; ;} } void knopka() { if (digitalRead(buttonPin)==HIGH) { ch=0; vl=analogRead(lightPin); timers=vl-20; Serial.println(" "); Serial.print("porog="); Serial.println(timers); Serial.print("znach="); Serial.println(vl); lcd.clear(); lcd.setCursor(0, 0); lcd.print("porog="); lcd.print(1023-timers); lcd.setCursor(0, 1); lcd.print("znach="); lcd.print(1023-vl); delay(4000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Obnulyem Schet"); Serial.println("Obnulyem Schet"); delay(2000); lcd.setCursor(0, 1); lcd.print("Start"); shtm=1; } } void setup() { pinMode(buttonPin, INPUT); pinMode(6, OUTPUT); pinMode(ledPin, OUTPUT); pinMode(9, OUTPUT); lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Programm Fotitir"); delay(2000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Nagmite knopky"); lcd.setCursor(0, 1); lcd.print("Zadaty porog ch"); Serial.begin(9600); Serial.println("Zadaite s terminala porog chustvitelnosti fotorezistora"); } void loop() { timer1(); porog=timers; if (fl_ftir==1){fototir();} popal(); knopka(); //Serial.println("Zadaite s terminala porog chustvitelnosti fotorezistora"); delay(20); } |
К оглавлению | |
_________ | ____________________________________________________________________________________________________________________________________________________________ |
14 |
|
Название | «Бегущий» символ |
Описание | вывод на жк экран приветствия и символа, двигающегося вправо по нижней строке жк-экрана |
Схемы | |
Текст | #include #include LiquidCrystal_I2C lcd(0x3f,16,2); //LiquidCrystal_I2C lcd(0x27,16,2); int s=0; byte newChar1[8]= { 0b10001, 0b11011, 0b10101, 0b10101, 0b10001, 0b10001, 0b10001, 0b00000 }; byte newChar2[8]= { 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b00000 }; byte newChar3[8]= { 0b10001, 0b10001, 0b10011, 0b10101, 0b11001, 0b10001, 0b10001, 0b00000 }; byte newChar4[8] = { 0b11111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; byte newChar5[8] = { 0b00000, 0b01110, 0b01010, 0b01010, 0b01010, 0b01010, 0b01110, 0b00000 }; int i = 0; void setup() { lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print(" KOLPINKURS.RU "); delay(1000); lcd.createChar(0, newChar1); lcd.createChar(1, newChar2); lcd.createChar(2, newChar3); lcd.createChar(3, newChar4); lcd.createChar(4, newChar5); for(int n = 0; n < 15; n++) {lcd.setCursor(n, 1); lcd.write(3); delay(100); lcd.setCursor(0, 1); lcd.print(" "); } lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("BCE"); lcd.write(0); lcd.print(" "); lcd.write(1); lcd.print("P"); lcd.write(2); lcd.print("BET !"); delay(1000); lcd.setCursor(0, 1); } void loop() { for(int n = 0; n < 15; n++) {lcd.setCursor(n, 1); lcd.write(4); delay(300); lcd.setCursor(0, 1); lcd.print(" "); } } |
К оглавлению |