Fórum témák

» Több friss téma
Cikkek » Karácsonyi villogó, zenélő karácsonyfadísz
Karácsonyi villogó, zenélő karácsonyfadísz
Szerző: hadnagyakos, idő: Dec 28, 2010, Olvasva: 23446, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   3 / 6

A dísz esztétikai javítása érdekében készült ez a kis áramkör. A karácsonyfa alakú NYÁK szélén lévő LED-eket villogtatja. A villogás vezérlését egy 12F629 típusú PIC végzi.

A kapcsolási rajz:

A villogásért felelős áramkör kapcsolási rajza

Azt hiszem a kapcsolást nem kell hosszasan magyaráznom. Amennyire lehet, le van egyszerűsítve. Összesen a PIC-ből, két tranzisztorból, amelyek a LED-eket kapcsolják, előtét ellenállásokból és magukból a LED-ekből áll. Korlátlan számú LED-et lehet vezérelni az áramkörrel, viszont az előtét ellenállásokat mindig át kell számolni. Az én tervemen egy oldalon 5 darab LED van, az áramkört 3V-ról járatom, így nem kellett semmilyen előtét ellenállás, de nagyobb feszültségről járatva azért elkel. A NYÁK terven van is nekik hely, ebben az esetben viszont egy átkötést kell rakni a helyükre.
Az áramkör a PIC belső oszcillátoráról jár, így kvarc sem kell külön.

A programot a PIC-re CCS C-ben írtam. Sajnos csak egy egyszerű villogási mintát volt időm összedobni, de úgy gondolom, hogy maximálisan megérthető a működése ez alapján is. A későbbi fejlesztés érdekében a NYÁK tervre rá van tervezve egy nyomógomb is, amivel majd villogási mintát lehet váltani, ez most nincs kész, de aki ért hozzá, kis munkával elkészítheti. A nyomógomb az 5-ös lábra lett tervezve, így a gombnyomás megszakítással kezelhető.

A programkód:

  1. #include <villogo.h>
  2.  
  3. void main()
  4. {
  5.  
  6.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
  7.    setup_timer_1(T1_DISABLED);
  8.    setup_comparator(NC_NC);
  9.    setup_vref(FALSE);
  10.  
  11.    // TODO: USER CODE!!
  12. while(1)
  13.       {
  14.       Output_high (PIN_A4);
  15.       Delay_ms (1500);
  16.       Output_low (PIN_A4);
  17.       Delay_ms (500);
  18.       Output_high (PIN_A4);
  19.       Delay_ms (500);
  20.       Output_low (PIN_A4);
  21.       Delay_ms (500);
  22.       Output_high (PIN_A4);
  23.       Delay_ms (500);
  24.       Output_low (PIN_A4);
  25.       Delay_ms (500);
  26.       Output_high (PIN_A5);
  27.       Delay_ms (1500);
  28.       Output_low (PIN_A5);
  29.       Delay_ms (500);
  30.       Output_high (PIN_A5);
  31.       Delay_ms (500);
  32.       Output_low (PIN_A5);
  33.       Delay_ms (500);
  34.       Output_high (PIN_A5);
  35.       Delay_ms (500);
  36.       Output_low (PIN_A5);
  37.       Delay_ms (500);
  38.       Output_high (PIN_A5);
  39.       Output_high (PIN_A4);
  40.       Delay_ms (1500);
  41.       Output_low (PIN_A5);
  42.       Output_low (PIN_A4);
  43.       Delay_ms (1500);
  44.        
  45.       }
  46. }

A lefordított .hex letöltése: .HEX


A cikk még nem ért véget, lapozz!
Következő: »»   3 / 6
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem