Elektroda.pl
Elektroda.pl
X
BotlandBotland
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przełącznik włącz/wyłacz rc

77PAGO77 06 Lip 2015 00:03 5433 45
  • #31
    miroskop
    Poziom 23  
    Potwierdzam, przełącznik na układzie CD4013 działa na 100%. Wiem bo kiedyś zrobiłem kilka sztuk. Sugeruję jednak zastosować na wyjściu tranzystor serii IRL, np. IRL2203N.
  • BotlandBotland
  • #32
    77PAGO77
    Poziom 12  
    Jak wygląda zrobienie takiego włącznika w BASCOM atmega (miałem kod który dostałem ) ale po formacie komputera straciłem go .
  • #33
    strikexp
    Poziom 27  
    Nie lepiej w C ? Bardziej popularny i znany przez więcej osób a co za tym idzie dobrze opisany w internecie i książkach.
  • BotlandBotland
  • #34
    77PAGO77
    Poziom 12  
    Bascom coś tam poznałem c nigy się nie bawiłem i raczej dla takiej drobnostki nie opłaca się uczyć brak czasu

    Dodano po 1 [godziny] 27 [minuty]:

    Mam taki kod jak poniżej tylko jest problem (chyba) nie da się przy pomocy Pulsein określić 3 pozycje w odbiorniku mowa o
    1) Zero czyli drążek po środku
    2) Drążek max wychylony do przodu
    3) Max wychylony do tyłu

    Jak można to zrobić ??


    $regfile = "m8adef.dat"
    $crystal = 8000000

    $framesize = 24

    Config Portb.2 = Input
    Config Portb.1 = Output
    Config Portb.0 = Output
    Dim W As Word
    Do
    Pulsein W , Pinb , 2 , 1
    If W <= 150 Then
    Portb.0 = 0
    Portb.1 = 0
    End If
    If W > 150 And W <= 200 Then
    Portb.0 = 1
    Portb.1 = 1
    End If
    If W > 200 Then
    W = 200
    End If
    Loop
    End
  • #35
    77PAGO77
    Poziom 12  
    Ok zrobiłem takie coś i jedynie co robi to ściemnia diodę :-(

    Dane z odbiornika podpięte pod ADC0 w Atmega


    Kod: vbnet
    Zaloguj się, aby zobaczyć kod
  • #36
    miroskop
    Poziom 23  
    Z tego co widzę to mierzysz napięcie na wyjściu odbiornika a trzeba mierzyć długość impulsu za pomocą Timera.
  • #37
    77PAGO77
    Poziom 12  
    Jakaś pomoc panowie ?
  • #38
    strikexp
    Poziom 27  
    Poszukaj biblioteki do generowania i odczytywania PWM.
  • #39
    miroskop
    Poziom 23  
    Możesz zrobić to np. w taki sposób: wyjście odbiornika podłączyć poprzez opornik 1k do wejścia INT0 w procesorze. Nie podaję która to nóżka bo to zależy od procesora. Wystarczy jakiś ośmionóżkowiec. Skonfigurować przerwanie INT0: "Config Int0 = Rising" i wyznaczyć skok do procedury np. o nazwie "Pomiar": "On Int0 Pomiar". Teraz jak pojawi się wysoki poziom na wyjściu odbiornika to jesteśmy w tej procedurze. Od razu trzeba załączyć timer, np. Start Timer0 i spowodować żeby liczył tak długo , jak długo będzie trwał impuls kanałowy. Więc w kolejnej linijce wpisz "While Piny.x = 1" gdzie y to port a x numer pinu. A w kolejnej linijce "Wend". Jak impuls się skończy to program opuści tą pętelkę (While- Wend) i trzeba zatrzymać timer, czyli "Stop Timer0". Teraz trzeba przepisać wartość Timera0 do jakiejś zmiennej typu Word, a sam Timer0 wyzerować: "Timer0=0". Ze zmienną można teraz "wyczyniać" różne rzeczy, np.: porównywać z zadanymi wartościami i sterować wyjściami.
    A teraz kilka uwag: Trzeba dobrać taktowanie procesora oraz prescaler timera, żeby optymalnie zgrać długość impulsu kanałowego z maksymalnym czasem zliczanym przez timer w jednym cyklu. Do tego przydaje się odpowiedni kalkulator timerów. Na przykład dla taktowania 4MHz i prescalera 64 krok wynosi 16us a maksymalny czas pomiaru to 4,09ms. Czyli mamy spory zapas (2 milisekundy) i wystarczającą dokładność w mierzeniu impulsu.
    Nie trzeba przeliczać stanu timera na milisekundy, trzeba tylko wiedzieć jakich wartości możemy się spodziewać. A to można wyliczyć. Dla neutrum długość impulsu wynosi 1500us, krok timera to 16us, czyli powinien uzyskać wartość 1500/16=93. W rzeczywistości może to być trochę mniej bo stracimy trochę czasu na instrukcje samego procesora. Ale zawsze (przy większych procesorach) można sobie tą wartość testowo "rzucić" na wyświetlacz i sprawdzić jakie wartości przyjmuje.
    Jeżeli z jakichś powodów nie możesz skorzystać z przerwań (INT0, INT1) to można sprawdzać stan dowolnego wejścia przez umieszczenie w głównej pętli programu: "If Piny.x = 1 Then Gosub Pomiar" gdzie y.x to wejście. Poza tą instrukcją w pętli nic nie ma. Przy korzystaniu z przerwań pętla jest pusta. To na razie tyle bo skończyłem picie kawy.
  • #42
    77PAGO77
    Poziom 12  
    Tak , ustawione są na wewnętrzny kwarc 8000000
  • #44
    77PAGO77
    Poziom 12  
    OK działa , dzieki
  • #45
    lucjanma
    Poziom 6  
    Witam
    a może coś takiego jak bit swtch na pic10f...
    Tanie ,małe i lekkie

    Dodano po 31 [minuty]:

    Mnie natomiast interesuje rc switch na układzie pic16 f.....Miałby to być switch 4 kanałowy, tzn 4wejścia i 4 wyjścia.
    Czy ktoś mógłby mi pomóc w napisaniu kodu? Dopiero zaczynam przygodę z programowaniem i nie bardzo wiem jak to ugryżć.
    Ma to służyć do załączania oświetlenia w modelu łodzi(włączania paczek diod led z aparatury) Marzy mi się aby na jednym wyjściu dioda mrugała(tak jak w samolocie)
    Czy ktoś byłby chętny pomóc?
    pozdrawiam
  • #46
    nadprzewodnik22
    Poziom 15  
    strikexp napisał:


    odnośnie schematu, to nawet tranzystor został w złej konfiguracji ustawiony...
    tranzystor NPN się tak nie stosuje, powinien emiter być 'przy masie', a rezystor z diodą pomiędzy VCC, a kolektorem.