Trepćuća LED lampica prvi je korak koji biste željeli započeti s elektronikom. U ovom uputstvu spojit ćemo LED sa ATmega32, koji je mikrokontroler serije AVR. Trepnut ćemo LED diodom u pola sekunde.
Komponente potrebne
Hardver:
Mikrokontroler ATmega32A
Napajanje (5v)
AVR-ISP programer
Kondenzator od 100uF
LED
Otpornik od 220Ω
Softver
Atmel studio 6.1
Progisp ili flash magija
Krug i radno objašnjenje

Kao što je prikazano na gornjoj shemi sklopa za povezivanje LED-a s AVR mikrokontrolerom, ovdje nije potrebno spajati vanjski kristal. Budući da ATMEGA prema zadanim postavkama radi na internom oscilatoru otpornik-kondenzator od 1 MHz. Tek kada je potrebna preciznost sata, kako se primjenjuje visoko precizno brojanje, vanjski kristal se pričvršćuje. Kada se kontroler prvi put kupi, prema zadanim je postavkama stopljen za rad na unutarnjem kristalu.
Ovdje je spojen otpor kako bi se ograničio trenutni crtež iz LED-a. Zapamtite, kontroler ne može pružiti više od 30 mA na stezaljkama.
Objašnjenje programiranja
U nastavku je prikazan program za ATmega32 mikrokontroler za treptanje LED diode. Komentari u kodu objašnjavaju svrhu pojedinog retka koda.
#include // zaglavlje kako bi se omogućila kontrola protoka podataka nad iglama
#define F_CPU 1000000 // javlja frekvenciju kristala regulatora
#include
int main (void)
{
DDRD = 0xFF; // (ili 0b1111 1111) U AVRSTUDIO za upravljanje kontrolnom jedinicom da koristi određeni bit porta kao ulaz koristimo „NULA“, a za naređivanje da koristi određeni bit kao izlaz koristimo „ONE“. Budući da smo stavili osam "JEDNIH", svi pinovi PORTD-a omogućeni su kao izlaz. Ako nulu stavimo kao "0b1111 0111", sada su svi pinovi 0,1,2,4,5,6,7 omogućeni kao ulazi, a PIN 3 je omogućen kao ulaz.
dok (1) // petlja traje zauvijek i LED će treptati zauvijek
{
PORTD = 0xFF; // kaže se da svi pinovi PORTD-a pružaju 5v izlaz ili im treba povući visoko (LED UKLJUČEN)
_zakašnjenje_ms (220); // odgoda za 200ms
_zakašnjenje_ms (220);); // odgoda za 200ms
LUKA = 0x00; // kaže se da svi zatiči PORTD-a pružaju masu na izlazu ili povlačenju prema dolje
_zakašnjenje_ms (220);); // odgoda za 200ms
_zakašnjenje_ms (220);); // odgoda za 200ms
}
}
