Katse 3.1
Töö koos Nuppidega
Komponendid:

——Kood——
const int button1Pin = 2; //viik kunu on ühebdatud nupp1 const int button2Pin = 3; //viik kuhu on ühendatud nupp2 const int ledPin = 13; void setup() { pinMode(button1Pin, INPUT); //algväärtuse nupu viigu sisendiks pinMode(button2Pin, INPUT); //algväärtuse nupu viigu sisendiks pinMode(ledPin, OUTPUT); //algväärtuse LED viigu väljundiks } void loop() { int button1State, button2State; //nupu oleku muutujad button1State = digitalRead(button1Pin);// salvestame muutujasse nupu hetke väärtuse(HIGH või LOW) button2State = digitalRead(button2Pin); if (((button1State == LOW) || (button2State == LOW)) // kui nupu on alla vajutatud && ! ((button1State == LOW) && (button2State == LOW))) // kui nupude on alla vajutatud { digitalWrite(ledPin, HIGH); // lülitame LED sisse } else { digitalWrite(ledPin, LOW); // lülitame LED välja } }
Katse 3.2
Projekti koostamiseks läheb vaja
Töö koos photo resistoriga

——Kood——
const int sensorPin = 0; const int ledPin = 9; int lightLevel, high = 0, low = 1023; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); // //Serial monitori seadistamine } void loop() { // AnalogRead() kasutab väärtused vahemikus 0 (0 вольт) и 1023 (5 вольт). // AnalogWrite(), kasutatakse, et LEDi sujuvalt sisselülitada 0(ei põle) kuni 255(põleb maksimalselt). lightLevel = analogRead(sensorPin); //loeme mõõdetud analoogväärtuse // Map() teisendab sisendi väärtused ühest vahemikust teisse. Näiteks, "from" 0-1023 "to" 0-255. // Constrain() saed muutujale kindlad piirväärtused. // Näiteks: kui constrain() kohtub arvudega 1024, 1025, 1026.., siis ta teisendab need 1023, 1023, 1023..). Kui arvud vähem kui 0, siis teisendab need 0:. // lightLevel = constrain(lightLevel, 0, 255); manualTune(); // //autoTune(); // analogWrite(ledPin, lightLevel); // Выражение выше, будет изменять яркость светодиода вместе с уровнем освещенности. Чтобы сделать наоборот, заменить в analogWrite(ledPin, lightLevel) "lightLevel" на "255-lightLevel". Теперь у нас получился ночник! Serial.print(lightLevel); // prindime tulemused Serial Monitori (вывод данных с фоторезистора (0-1023)) Serial.println(""); delay(1000); } void manualTune() { lightLevel = map(lightLevel, 300, 800, 0, 255); // kaardistame selle analoogväljundi vahemikku (будет от 300 темно, до 800 (светло)). lightLevel = constrain(lightLevel, 0, 255); } void autoTune() { if (lightLevel < low) { low = lightLevel; } if (lightLevel > high) { high = lightLevel; } lightLevel = map(lightLevel, low+10, high-30, 0, 255); lightLevel = constrain(lightLevel, 0, 255); }
Öölamp
Ma ja minu sõber Kirill teeme öölamp.
Projekti koostamiseks läheb vaja:
12 juhet,
7 takistit,
6 LED valgustit,
lüliti ja toide
SKEEM:

See on video koos oma öölamp:
https://www.youtube.com/shorts/CbW4iaxHK6Q
Kood meie lambi kood:
int swPin = 2; int switchstate = 0; const int sensorPin = 0; const int green1Pin = 7; const int red1Pin = 8; const int yellow1Pin = 9; const int green2Pin = 10; const int yellow2Pin = 11; const int red2Pin = 12; int lightLevel, high = 0, low = 1023; void setup() { pinMode(yellow1Pin, OUTPUT); pinMode(red1Pin, OUTPUT); pinMode(red2Pin, OUTPUT); pinMode(yellow2Pin, OUTPUT); pinMode(green1Pin, OUTPUT); pinMode(green2Pin, OUTPUT); pinMode(swPin, INPUT); Serial.begin(9600); } void loop() { switchstate = digitalRead(swPin); if (switchstate == HIGH) { hstate == HIGH) { lightLevel = analogRead(sensorPin); lightLevel=manualTune(); analogWrite(red1Pin, lightLevel); analogWrite(yellow1Pin, lightLevel); analogWrite(green1Pin, lightLevel); analogWrite(green2Pin, lightLevel); analogWrite(yellow2Pin, lightLevel); analogWrite(red2Pin, lightLevel); 23 Serial.print(lightLevel); Serial.println(""); delay(200); } else if (switchstate == LOW) { digitalWrite(red1Pin, LOW); digitalWrite(red2Pin, LOW); digitalWrite(green1Pin, LOW); digitalWrite(green2Pin, LOW); digitalWrite(yellow1Pin, LOW); digitalWrite(yellow2Pin, LOW); } } int manualTune() { lightLevel = map(lightLevel, 300, 800, 0, 255); // kaardistame selle analoogväljundi vahemikku (будет от 300 темно, до 800 (светло)). lightLevel = constrain(lightLevel, 0, 255); return lightLevel; }