
// Nuppud (КНОПКИ).
// У кнопок есть два контакта, если кнопка нажата - контакт замкнут, если не нажата - разомкнут.
-----Код для Кнопки и светодиода-----
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 ( переменные для сохранения состояния кнопок)
// Поскольку кнопки имеют только два состояния (нажаты и не нажаты) мы будем
// работать с ними используя цифровые порты ввода. Для того чтобы считывать
// digitalRead() функция позволяет получить один параметр с цифрового порта и возвратить либо HIGH (+5V), либо LOW ("0").
button1State = digitalRead(button1Pin);// salvestame muutujasse nupu hetke väärtuse
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); // süütame LEDi (включаем светодиод)
}
else
{
digitalWrite(ledPin, LOW); // kustutame LEDi (выключаем светодиод)
}
}
3.2. Katse Photoresistor

const int sensorPin = 0;
const int ledPin = 9;
int lightLevel, high = 0, low = 1023; // создадим глобальные переменные для уровней яркости high (высокий), low (низкий):
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // //Serial monitori seadistamine (для отладки, чтобы увидеть показания датчиков)
}
void loop()
{
lightLevel = analogRead(sensorPin); //loeme mõõdetud analoogväärtuse
manualTune(); // ручное изменение диапазона от светлого к темному
analogWrite(ledPin, 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) // если уровень "lightLevel" меньше 1023, то присвоим
{
low = lightLevel; // теперь самым "низким" ~ 800
}
if (lightLevel > high)
{
high = lightLevel;
}
lightLevel = map(lightLevel, low+0, high-30, 0, 255);
lightLevel = constrain(lightLevel, 0, 255);
}
Ülesanne 3 Öölamp:

https://www.tinkercad.com/things/6INHpmDI2uw?sharecode=ZYZhrVa11glUlCv1vDI85UTDaStKCZ1Xgvq9Dia9SMM
Ma kasutasin selle projekti jaoks:
- 1 värvilist LEDi
- 1 Arendusplaat
- 9 Juhtmed
- 1 Arduino Uno
- 2 takisti
- 1 Potentsiomeeter
- 1 Photoresistor
Kogemuse toimimise põhiolemus:
Fotoresistor ei lülita LED-i sisse seni, kuni valgus on olemas. Kui valgus kustub, lülitub LED sisse. Nupu abil on võimalik ka öösel valgust sisse ja välja lülitada, seega saab kontrollida, kas me tahame, et öösel valgustataks pimedas.
Kood:
int LEDPIN=9;
int PHOTOPIN=A3;
int BUTPIN=2;
int mode=0;
void setup()
{
pinMode(BUTPIN, INPUT_PULLUP);
pinMode(LEDPIN, OUTPUT);
}
void loop()
{
int val;
val=analogRead(PHOTOPIN);
if(digitalRead(BUTPIN)==LOW)
{
mode = mode+1;
}
if(mode==0)
{
digitalWrite(LEDPIN,LOW);
}
if(mode==1)
{
if(val>512)
{
digitalWrite(LEDPIN,HIGH);
}
else
{
digitalWrite(LEDPIN,LOW);
}
}
if(mode==2)
{
mode=0;
}
}
Photoresistor kasutamine:
- Kasutatakse trükitööstuses
- Kasutatakse tööstus- ja kodumasinates