Utripajoča LED je prvi korak, ki bi ga želeli začeti z elektroniko. V tej vadnici bomo povezali LED z ATmega32, ki je mikrokrmilnik serije AVR. Utripali bomo LED s pol sekunde.
Potrebne komponente
Strojna oprema:
Mikrokrmilnik ATmega32A
Napajanje (5v)
Programer AVR-ISP
Kondenzator 100uF
LED
220Ω upor
Programska oprema
Atmel studio 6.1
Progisp ali flash magija
Pojasnilo vezja in dela
Kot je prikazano v zgornjem vezju za povezovanje LED z mikrokrmilnikom AVR, tu ni treba priključiti zunanjega kristala. Ker ATMEGA privzeto deluje na notranjem oscilatorju 1MHz Resistor-Capacitor. Zunanji kristal se pritrdi šele, ko je potrebna natančnost ure, saj se z uporabo natančnega štetja. Ko prvič kupite krmilnik, je privzeto varovan za delo na notranjem kristalu.
Upor je tukaj priključen, da omeji trenutno risanje LED. Ne pozabite, da krmilnik ne more zagotoviti več kot 30 mA na terminalih.
Pojasnilo programiranja
Spodaj je prikazan program za mikrokrmilnik ATmega32 za utripanje LED. Komentarji v kodi pojasnjujejo namen posamezne vrstice kode.
#include // header, da omogoči nadzor pretoka podatkov nad zatiči
#define F_CPU 1000000 // sporoča frekvenco kristala krmilnika
#include
int main (void)
{
DDRD = 0xFF; // (ali 0b1111 1111) V programu AVRSTUDIO za krmiljenje krmiljenja, naj kot vhod uporabi določen bit vrat, uporabimo “ZERO”, za uporabo določenega bita kot izhod pa uporabimo “ONE”. Ker smo postavili osem "ONE", so vsi zatiči PORTD omogočeni kot izhod. Če postavimo ničlo kot »0b1111 0111«, so zdaj vsi zatiči 0,1,2,4,5,6,7 omogočeni kot vhodi in PIN 3 je omogočen kot vhod.
medtem ko zanka (1) // traja večno in lučka LED bo večno utripala
{
PORTD = 0xFF; // vsi zatiči PORTD naj bi zagotavljali 5v izhod ali jim rekli, naj potegnejo visoko (LED VKLOP)
_delay_ms (220); // zamuda za 200ms
_delay_ms (220);); // zamuda za 200ms
PORTD = 0x00; // vsi zatiči PORTD naj bi zagotavljali ozemljitev na izhodu ali spust
_delay_ms (220);); // zamuda za 200ms
_delay_ms (220);); // zamuda za 200ms
}
}