Pomoc dla poczatkujacego (Inteligentne oswietlenie schodow)


Witam od pewnego czasu staram się dzięki informacja znalezionym w internecie zaprojektować układ sterujący oświetleniem schodów.
Układ miałby zapalać 16 żarówek led (bądź halogenowych) 12V , rozjaśniając je jedna po drugiej przy pomocy dwóch czujników ruchu i procesorze atmega16
Tutaj mniej więcej jak by to miało wyglądać

Oto schemat jaki udało mi się spłodzić

Nie wiem czy tranzystory są dobre i czy nie zmienić ich czasem na Buz71 (14A/ 50V/ 0.100 Ohm/ N-Channel Power MOSFET)

Tutaj jeszcze kawałek kodu jeśli można to tak nazwać (bardziej to sklejka rożnych kodów znalezionych tutaj brakuje najważniejszego obsługi czujników bo tu pojawia się problem przy większej liczbie ludzi chodzących po schodach i nie standardowo się poruszających ;)

                                              '************* Konfiguracja uC *****************
'***********************************************
$regfile = "m16def.dat"                                     'Deklaracja rodzaju procesora
$crystal = 16000000
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111111 : Portd = &B11111111
Config Porta = &B11111111 : Porta = &B11111111
Config Portc = &B00111111 : Portc = &B11111111
 
Config Timer0 = Timer , Prescale = 8
Enable Timer0 : On Timer0 Prztimer0
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Nazwy *******************
'***********************************************
Led1 Alias Porta.7
Led2 Alias Porta.6
Led3 Alias Porta.5
Led4 Alias Porta.4
Led5 Alias Porta.3
Led6 Alias Porta.2
Led7 Alias Porta.1
Led8 Alias Porta.0
 
Led9 Alias Portd.7
Led10 Alias Portd.6
Led11 Alias Portd.5
Led12 Alias Portd.4
Led13 Alias Portd.3
Led14 Alias Portd.2
Led15 Alias Portd.1
Led16 Alias Portd.0
 
Sw_port Alias Pinc
 
 
'*************  Nazwy Koniec  ****************
 
'******************  Zmienne *******************
'***********************************************
Dim Licznik As Byte
Dim Dzielnik As Word
Dim Flaga As Bit
Dim Sw As Byte , Stan_sw As Byte , Licznik_sw As Byte
 
Dim Iled1 As Byte , Iled2 As Byte , Iled3 As Byte , Iled4 As Byte , Iled5 As Byte , Iled6 As Byte , Iled7 As Byte
Dim Iled8 As Byte , Iled9 As Byte , Iled10 As Byte , Iled11 As Byte , Iled12 As Byte , Iled13 As Byte
Dim Iled14 As Byte , Iled15 As Byte , Iled16 As Byte
 
'*************  Zmienne Koniec  ****************
 
 
 
'**************  Petla glowna ******************
'***********************************************
Do
 
 
If Flaga = 1 Then                                           'co 32ms
   Flaga = 0
 
   Gosub Przyciski
 
 End If
Loop
End
 
'************ Petla glowna Koniec **************
 
 
'**************  Przyciski ******************
'***********************************************
Przyciski:
Sw = Pinc And &B11000000                                    'maskowanie nieużywanych pinów
 
If Sw <> &B11000000 And Stan_sw = Sw Then
    Incr Licznik_sw
    If Licznik_sw = 100 Then
      Licznik_sw = 0
      Select Case Stan_sw
        Case &B01000000:
           'tutaj to co będzie po kliknięciu S1
        Case &B10000000:
           'tutaj to co będzie po kliknięciu S2
      End Select
    End If
  Else
    Stan_sw = Sw
    Licznik_sw = 80
  End If
Return
 
'**************  Przyciski End ******************
'***********************************************
 
 
 
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
 Incr Licznik
 If Licznik = 100 Then Licznik = 0
 
 If Licznik < Iled1 Then Set Led1 Else Reset Led1
 If Licznik < Iled2 Then Set Led1 Else Reset Led2
 If Licznik < Iled3 Then Set Led1 Else Reset Led3
 If Licznik < Iled4 Then Set Led1 Else Reset Led4
 If Licznik < Iled5 Then Set Led1 Else Reset Led5
 If Licznik < Iled6 Then Set Led1 Else Reset Led6
 If Licznik < Iled7 Then Set Led1 Else Reset Led7
 If Licznik < Iled8 Then Set Led1 Else Reset Led8
 If Licznik < Iled9 Then Set Led1 Else Reset Led9
 If Licznik < Iled10 Then Set Led1 Else Reset Led10
 If Licznik < Iled11 Then Set Led1 Else Reset Led11
 If Licznik < Iled12 Then Set Led1 Else Reset Led12
 If Licznik < Iled13 Then Set Led1 Else Reset Led13
 If Licznik < Iled14 Then Set Led1 Else Reset Led14
 If Licznik < Iled15 Then Set Led1 Else Reset Led15
 If Licznik < Iled16 Then Set Led1 Else Reset Led16
 
 Incr Dzielnik
 If Dzielnik = 250 Then
   Dzielnik = 0
   Set Flaga
 End If
 
 
Return
'******** Przerwanie timer 0 Koniec ************
 
Rozpalwgore:
  If Iled1 < 255 Then Incr Iled1
  If Iled1 = 255 Then If Iled2 < 255 Then Incr Iled2
  If Iled2 = 255 Then If Iled3 < 255 Then Incr Iled3
  If Iled3 = 255 Then If Iled4 < 255 Then Incr Iled4
  If Iled4 = 255 Then If Iled5 < 255 Then Incr Iled5
  If Iled5 = 255 Then If Iled6 < 255 Then Incr Iled6
  If Iled6 = 255 Then If Iled7 < 255 Then Incr Iled7
  If Iled7 = 255 Then If Iled8 < 255 Then Incr Iled8
  If Iled8 = 255 Then If Iled9 < 255 Then Incr Iled9
  If Iled9 = 255 Then If Iled10 < 255 Then Incr Iled10
  If Iled10 = 255 Then If Iled11 < 255 Then Incr Iled11
  If Iled11 = 255 Then If Iled12 < 255 Then Incr Iled12
  If Iled12 = 255 Then If Iled13 < 255 Then Incr Iled13
  If Iled13 = 255 Then If Iled14 < 255 Then Incr Iled14
  If Iled14 = 255 Then If Iled15 < 255 Then Incr Iled15
  If Iled15 = 255 Then If Iled16 < 255 Then Incr Iled16
Return
 
Rozpalwdol:
  If Iled16 < 255 Then Incr Iled16
  If Iled16 = 255 Then If Iled15 < 255 Then Incr Iled15
  If Iled15 = 255 Then If Iled14 < 255 Then Incr Iled14
  If Iled14 = 255 Then If Iled13 < 255 Then Incr Iled13
  If Iled13 = 255 Then If Iled12 < 255 Then Incr Iled12
  If Iled12 = 255 Then If Iled11 < 255 Then Incr Iled11
  If Iled11 = 255 Then If Iled10 < 255 Then Incr Iled10
  If Iled10 = 255 Then If Iled9 < 255 Then Incr Iled9
  If Iled9 = 255 Then If Iled8 < 255 Then Incr Iled8
  If Iled8 = 255 Then If Iled7 < 255 Then Incr Iled7
  If Iled7 = 255 Then If Iled6 < 255 Then Incr Iled6
  If Iled6 = 255 Then If Iled5 < 255 Then Incr Iled5
  If Iled5 = 255 Then If Iled4 < 255 Then Incr Iled4
  If Iled4 = 255 Then If Iled3 < 255 Then Incr Iled3
  If Iled3 = 255 Then If Iled2 < 255 Then Incr Iled2
  If Iled2 = 255 Then If Iled1 < 255 Then Incr Iled1
Return
 
Zgaswdol:
  If Iled16 = 255 Then Decr Iled16
  If Iled16 = 0 Then If Iled15 > 0 Then Decr Iled15
  If Iled15 = 0 Then If Iled14 > 0 Then Decr Iled14
  If Iled14 = 0 Then If Iled13 > 0 Then Decr Iled13
  If Iled13 = 0 Then If Iled12 > 0 Then Decr Iled12
  If Iled12 = 0 Then If Iled11 > 0 Then Decr Iled11
  If Iled11 = 0 Then If Iled10 > 0 Then Decr Iled10
  If Iled10 = 0 Then If Iled9 > 0 Then Decr Iled9
  If Iled9 = 0 Then If Iled8 > 0 Then Decr Iled8
  If Iled8 = 0 Then If Iled7 > 0 Then Decr Iled7
  If Iled7 = 0 Then If Iled6 > 0 Then Decr Iled6
  If Iled6 = 0 Then If Iled5 > 0 Then Decr Iled5
  If Iled5 = 0 Then If Iled4 > 0 Then Decr Iled4
  If Iled4 = 0 Then If Iled3 > 0 Then Decr Iled3
  If Iled3 = 0 Then If Iled2 > 0 Then Decr Iled2
  If Iled2 = 0 Then If Iled1 > 0 Then Decr Iled1
 
Return
 
 
Zgaswgore:
  If Iled1 = 255 Then Decr Iled1
  If Iled1 = 0 Then If Iled2 > 0 Then Decr Iled2
  If Iled2 = 0 Then If Iled3 > 0 Then Decr Iled3
  If Iled3 = 0 Then If Iled4 > 0 Then Decr Iled4
  If Iled4 = 0 Then If Iled5 > 0 Then Decr Iled5
  If Iled5 = 0 Then If Iled6 > 0 Then Decr Iled6
  If Iled6 = 0 Then If Iled7 > 0 Then Decr Iled7
  If Iled7 = 0 Then If Iled8 > 0 Then Decr Iled8
  If Iled8 = 0 Then If Iled9 > 0 Then Decr Iled9
  If Iled9 = 0 Then If Iled10 > 0 Then Decr Iled10
  If Iled10 = 0 Then If Iled11 > 0 Then Decr Iled11
  If Iled11 = 0 Then If Iled12 > 0 Then Decr Iled12
  If Iled12 = 0 Then If Iled13 > 0 Then Decr Iled13
  If Iled13 = 0 Then If Iled14 > 0 Then Decr Iled14
  If Iled14 = 0 Then If Iled15 > 0 Then Decr Iled15
  If Iled15 = 0 Then If Iled16 > 0 Then Decr Iled16
 
Return

Co o tym sadzicie ? Ma to wszystko jakieś ręce i nogi ? co byscie zmienili lub doradzili ;).




Portret użytkownika mirley

Re: Oświetlenie schodów

Teoretycznie powinno zadziałać. Tranzystory zmień na mosfety N, może być na takie co podałeś. Dopiero jak złożysz ukłąd przynajmniej prowizorycznie to będzie można pracować na programem dokładnie. Nie wiem jakie chcesz czujniki zastosować do wykrywania wejścia na schody, czy ma to być poprostu przycisk?

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika RLfilo

Re: Oświetlenie schodów

Czujniki ruchu z centralki alarmowej na 12V z przekaźnikiem w środku czyli praktycznie to samo co by zwykły przycisk tam był.

Portret użytkownika RLfilo

Pcb już gotowa.Teraz

Pcb już gotowa.Teraz potrzebował bym odpowiednik Buz71 dostępny w lispol-u znacie jakiś?

Portret użytkownika gosc

Zamienniki

Zamiennik do tego buz71 to moze być np.IRF530N , jest dostępny w lispolu.

Portret użytkownika RLfilo

Dobor rezystorow i kondensatorow

jakie dać rezystory do tych tranzystorów (IRF530N)? A i jakie wartości powinny mieć kondensatory c1,c2,c3,c4 bo co przegladam różne projekty to zawsze sa inne .

Portret użytkownika Andre

Bardzo fajny projekt, ale ...

... tylko żebyś nie zrozumiał mnie źle. W Twoim schemacie trochę razi sposób poprowadzenia niektórych ścieżek. Pewnie Tobie to nie przeszkadza, ale proponuję zajrzeć tutaj: kurs Eagle.
Mi ten kurs bardzo się przydał., chociaż z braku wiedzy sam nie projektuję układów - jestem informatykiem (administratorem) a nie elektronikiem (to tylko poboczne hobby, na z żadka zdażające się wolne wieczory). Nie mniej jednak, rysując przejrzyste schematy, trudniej o pomyłkę przy tworzeniu PCB.

Mam nadzieję, że nie uraziłem.
Szacun za projekt.

-

Andre

Portret użytkownika RLfilo

Nie uraziłeś . Ja tez nie

Nie uraziłeś . Ja tez nie jestem elektronikiem , a schemat jest pierwszym którym zrobiłem wiec pewnie dlatego tak mało fachowo wygląda .
Bardziej chciałem sprawdzić czy uda mi się coś samemu zrobić na postawie rożnych schematów z internetu i pewnie dlatego mam problem z doborem kondensatorów przy stabilizatorze (bo co przeglądam więcej schematów tym coraz różniejsze ich wartości ) i rezystorów przy tranzystorach (żadnego takiego przykładu nie znalazłem ) .Wiec możne coś polecicie (c1,c2,c3,c4) :)

ps Dziękuje za link do kursu pewnie się przyda przy następnej pcb

Portret użytkownika gosc

zasilacz

C1: 100uF elektrolit
C2: 47uF elektrolit
C3: 100nF ceramiczny
C4: 100nF ceramiczny

To zupelnie wystarczy.

Co do rezystorow, nie pomoge.

Portret użytkownika xtreme69

Kolego zastosuj zasilanie z

Kolego zastosuj zasilanie z tej strony Link lub Link, są to sprawdzone metody kolegi Mirka(Sam się na nich wzoruje).
Pozdrawiam Michał

Portret użytkownika RLfilo

Kolega wywrozyl

Kolega mówił ze sposób prowadzenia ścieżek mnie zgubi i faktycznie zgubił nie wiem jakim cudem ale połączyło mi +5v z +12v .
Teraz muszę przerobić na nowo i nowy procesor kopić

Portret użytkownika RLfilo

Schemat poprawiony potrzebne oko fachowca

Witam postarałem się poprawić schemat i pcb możecie zerknąć na nią?.Chciałbym uniknąć już wcześniejszych błędów a wiem ze jesteście fachowcami od tych rzeczy ;)

Schemat

Piliki z eagla schemat i pcb

Z góry dziękuje i szczęśliwego nowego roku ;)

Portret użytkownika gosc

Inteligentne oświetlenie schodów

Witam kolegów mam pytanie czy ktoś próbował uruchomić ten układ jeśli tak to proszę o jakieś namiary na płytkę i wsad, jestem zainteresowany budową takiego układu.

Portret użytkownika lorts

Zmiana tranzystorów

Mam pytanie do kolegi RLfilo czy zamiast irfz530 mogę wstawić bd139 posiadam większą ilość a rezystory do bramki 1k.I czy posiada ktoś pełen wsad do atmegi.
Pozdrawiam Tomek