Uued funktsioonid:
digitalRead() — Reads the value from a specified digital pin, either HIGH or LOW
Syntax
digitalRead(pin)
Nupp
Töö protsess:
See kood lülitab LED-i sisse, kui vajutada ühte kahest nupust. Kuid kui mõlemat nuppu vajutatakse korraga või kumbagi ei vajutata, lülitub LED välja.
Kasutatud:
1x Arduino uno
1x LED lamp
2x Nuppid
3x 330 oomi takisti
7x Juhtmed
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
}
}
Foto :

Näidis- Slideswitch’i kasutamine
Töö protsess:
Kui vajutate nuppu, süttib LED.
Nupu vabastamisel LED-tuli kustub.
Kasutatud:
1x Arduino uno
1x LED lamp
1x Slideswitch
1x 330 oomi takisti
1x Patarei
7x Juhtmed
Kood:
// C++ code for Arduino
// Управление светодиодом с помощью кнопки
const int swPin = 9; // Пин, к которому подключена кнопка
const int ledPin = 12; // Пин, к которому подключен светодиод
void setup() {
pinMode(swPin, INPUT); // Настраиваем пин кнопки как вход
pinMode(ledPin, OUTPUT); // Настраиваем пин светодиода как выход
}
void loop() {
int switchState = digitalRead(swPin); // Читаем состояние кнопки
if (switchState == HIGH) {
digitalWrite(ledPin, HIGH); // Включаем светодиод
} else {
digitalWrite(ledPin, LOW); // Выключаем светодиод
}
}
Foto :

Fototakisti abil valguse mõõtmine
Töö protsess:
Juhib LED-i heledust sõltuvalt fototakisti poolt mõõdetud valgustusest
Kasutatud:
1x Arduino uno
1x LED lamp
1x Fototakisti
1x 330 oomi takisti
1x 10000 oomi takisti
6x Juhtmed
Kood:
const int sensorPin = 0;
const int ledPin = 2;
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(100);
}
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);
}
Foto :

Öölamp
Töö protsess:
RGB-värvid helendavad, samal ajal kui fotoresistor näitab pimedust (treshold). Kui fotoresistor näitab valgust, lülituvad RGB LED-pirnid välja.
Funktsioonid:
lightShow() — See funktsioon loeb fotoresistori väärtuse, mis kontrollib lambi heledust.
setRGB() — funktsioon, mis paneb RGB valgusdioodi helendama RGB-värvides.
Kasutatud:
1x Arduino uno
1x RGB LED lamp
1x Fototakisti
3x 330 oomi takisti
1x 10000 oomi takisti
9x Juhtmed
Kood:
const int ledPins[] = {13, 12, 11};
const int SensorPin = A0;
const int treshold = 300;
int cycle = 0;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 9; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
lightShow();
}
void lightShow() {
int potValue = analogRead(SensorPin);
float rad = 0.024;
int brightness = map(potValue, treshold, 1023, 300, 255);
if (potValue < treshold) {
setRGB(0, 0, 0);
return;
}
cycle = (cycle + 1) % 255;
float c = cycle / 255.0 * M_PI;
int r = sin(c) * 255;
int g = sin(c) * 255;
int b = sin(c) * 255;
Serial.println("C: " + String(c) + " R: " + String(r) + "G: " + String(g) + "B: " + String(b));
setRGB(r, g, b);
delay(10);
}
void setRGB(int red, int green, int blue) {
analogWrite(ledPins[0], red);
analogWrite(ledPins[2], green);
analogWrite(ledPins[1], blue);
}
Foto:

Video:

