You are on page 1of 21

Vježba- upravljanje LED

pomoću tastera
 Za realizaciju ovog zadatka je potrebno:

1x Arduino Uno


1x USB kabl
1x prekidač/taster
1x10 kΩ otpornik
1x220Ω otpornik
Nekoliko džamper kablova
Opis vježbe:

- Tasteri su komponente za kontrolu/upravljanje elektroničkih uređaja.

- Obično se koriste kao prekidači za spajanje ili isključenje električnih


kola.

- Koriste se u različitim veličinama i oblicima, a u ovoj vježbi će se


koristiti taster veličine 12 mm.

- Taster koji će se koristiti je normalno otvorenog tipa.


- 2 kontakta tastera su zatvorena jedino kada je pritisnut taster.
Shema spajanja komponenata u spoju
PROGRAMSKI KOD:
int ledpin=11; //definition digital 11 pins as pin to control the LED
int btnpin=2; //Set the digital 2 to button interface

volatile int state = LOW; // potrebno za definisanje interrupt, promjene


stanja

void setup()
{
pinMode(ledpin,OUTPUT);//Set digital 11 port mode, the OUTPUT for the
output
pinMode(btnpin,INPUT); //Set digital 2 port mode, the INPUT for the input
}
void loop()
{
if(digitalRead(btnpin)==LOW) //Detection button interface to low
{
delay(10); //Delay 10ms for the elimination of key leading-edge jitter
if(digitalRead(btnpin)==LOW) // potvrđuje da je taster/button pritisnut
{
while(digitalRead(btnpin)==LOW);//Čekanje da se taster uključi

delay(10);

while(digitalRead(btnpin)==LOW);// potvrđuje da je taster oslobođen- otpušten

state = !state; //detektira promjenu stanja (0>1), stanje HIGH postaje LOW, ili stanje LOW- HIGH.
digitalWrite(ledpin,state); //pali led kada vidiš promjenu na btn, ON ili OFF
}
}
}
- digitalRead()-Čita vrijednosti sa određenog digitalnog PINa- HIGH ili
LOW (sve napone iznad 3V (za 5V pločice) definira kao HIGH, a sve
ispod toga kao LOW).

- Funkcija digitalRead() čita vrijednosti sa određenog pina i vraća HIGH


ili LOW, dok funkcija digitalWrite() upisuje vrijednost HIGH ili LOW na
odabrani pin.

- analogRead() je funkcija koja čita napon na određenoj nožici. Arduino


pločice sadrže 6 do 16 kanalni,10 bitni analogno digitalni pretvarač.
- To znači da mogu napone između 0 i 5V pretvarati u broj vrijednosti
između 0 i 1023
• Zadatak2: Napisati programski kod tako da blinkaju sve 3 diode,
prema zadatoj shemi spajanja.
• Zadatak 3: Napravite trčeće svjetlo. Neka se LED diode
uključuju s lijeva na desno i svaka neka bude uključena pola
sekunde.
• Neka se LED diode uključuju s lijeva na desno svaku
sekundu, bez gašenja prethodne LED diode.Kada
se uključe sve LED diode i prođe jedna sekunda neka
ciklus krene ispočetka.
• Tri LED diode spojiti na izvode mikrokotrolera s oznakama 8, 9 i 10.
Zbog ograničavanja struje ispred LED diode spojiti predotpornike
vrijednosti 330 Ohma.
• Tipkalo smo spojti na izvod 4 mikrokotrolera. Uz tipkalo spojen je i
otpornik od 10 kiloohma kao pull-¬‐down otpornik.

• Ovaj otpornik služi za definiranje stanja izvoda mikrokotrolera kada


tipkalo nije pritisnuto. Kada pritisnemo tipkalo na izvodu
mikrokotrolera biti će logičko stanje visoko, a kada tipkalo nije
pritisnuto na izvodu mikrokotrolera biti će logičko stanje nisko zbog
pull-¬‐down otpornika.
• Cilj ovog primjera je prikazati način podešavanja izvoda u ulazni režim
rada te upravljati LED diodama u ovisnosti o stanju tipkala – neka sve
LED diode budu uključene dok je tipkalo stisnuto odnosno isključene
kada tipkalo nije stisnuto.
• Sketch

int led1 = 8;
int led2 = 9;
int led3 = 10;
int tipkalo = 4;
int stanjetipkala = 0; // the setup routine runs once when you press
reset:
• void setup() {
• pinMode(led1, OUTPUT);
• pinMode(led2, OUTPUT);
• pinMode(led3, OUTPUT);
• pinMode(tipkalo, INPUT);
•}
• // the loop routine runs over and over again forever:
• void loop() {
• stanjetipkala = digitalRead(tipkalo);
• if (stanjetipkala == HIGH) {
• // turn LED on:
• digitalWrite(led1, HIGH); // turn the LED on (HIGH is the voltage level)
• digitalWrite(led2, HIGH); // turn the LED on (HIGH is the voltage level)
• digitalWrite(led3, HIGH); // turn the LED on (HIGH is the voltage level)
• }
• else {
• // turn LED off:
• digitalWrite(led1, LOW); // turn the LED off by making the voltage LOW
• digitalWrite(led2, LOW); // turn the LED off by making the voltage LOW
• digitalWrite(led3, LOW); // turn the LED off by making the voltage LOW
• }
• }
• Kako bismo izvod mikrokontrolera na koje je priključeno tipkalo
postavili u ulazni režim rada s ciljem da mikrokontroler može očitavati
je li ono pritisnuto ili nije koristimo naredbu pinMode(tipkalo,
INPUT).
• Za samo očitavanje u kojem je stanju tipkalo iskoristili smo naredbu
digitalRead(tipkalo) te njegovo stanje pohranili u varijablu
stanjetipkala. Kada je tipkalo pritisnuto na izvodu mikrokontrolera biti
će logičko stanje visoko a kada tipkalo nije pritisnuto na izvodu
imamo logičko stanje nisko. Korištenjem if naredbe uspoređujemo
trenutno stanje sa viskom stanjem i niskim stanjem ten a temelju toga
izvršavamo određeni dio koda – uključujemo ili isključujemo led
diode

You might also like