Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

podtrzymanie sygnału na wyjściu

11 Nov 2009 18:58 2327 10
  • Level 10  
    Witam. Musze wykonać sterowanie rolety od projektora, do szkoły.
    1 moje pytanie to; jaka jest komenda na potrzymanie sygnału. ( gdy przycisnę przycisk pierwszy to ma zjeżdżać w dół około 12 sekund )

    Code:
    $REGFILE = "roleta.dat"
    
    $CRYSTAL = 8000000

    Config Pind.5 = Input   `przycisk 1
    Config Pind.6 = Input   `przycisk 2
    Config Pinc.2 = Ouput  `roleta w dół
    Config Pinc.1 = Ouput  `roleta w górę

    P1 Alias Portd.5   `przypisanie nazwy włącznikom
    P2 Alias Portd.6
    S1 Alias Portc.2   ` przypisanie nazwy wyjścia do przekaźników
    S2 Alias portc.1 



    Dalej proszę o pomoc, próbowałem coś napisać ale mi nie wychodziło.
    [30.03.2021, darmowy webinar] Nowoczesna diagnostyka maszyn, monitorowanie i przewidywanie awarii. Zarejestruj się
  • Level 28  
    to pokaz co napisales?
  • Level 14  
    Witam, pierwsza sprawa jest taka, że $regfile dołącza bibliotekę danego mikroprocesora.
    Kolejna - konfiguracja portów odbywa się na rejestrze PORTC, a nie PINC, który jest przeznaczony do odczytu stanu pinu portu c.
    Jeszcze dobrze by było nadać początkowe wartości pinów portów tzn. wejścia podciągnąć do 1, a wyjścia 0
    Portd = 255
    Portc = 0
    Odpowiadając na zadane pytanie, najprostszym sposobem jest zawieszenie procesora funkcją wait np.:

    Code:
    If Pind.5 = 0 then
    
      Set Portc.2
      Wait 12
      Reset Portc.2
    Endif
    If Pind.6 = 0 then
      Set Portc.1
      Wait 12
      Reset Portc.1
    Endif
  • Level 28  
    jak to sa przyciski to beda drgania warto wyelyminowac. Oczywiscie ten program musi byc w petli do loop
  • Level 30  
    pgnige wrote:

    Kolejna - konfiguracja portów odbywa się na rejestrze PORTC, a nie PINC, który jest przeznaczony do odczytu stanu pinu portu c.

    To nieprawda. Konfiguracja odbywa się w rejestrze DDR a nie PORT. W Bascomie pojedyńcze piny konfiguruje się właśnie
    Code:
    Config PINX.Y = Input/Output
    Także użycie waitów do odmierzania czasu opuszczania rolety nie zda egzaminu. Można liczyć obroty wałka lub zastosować krańcówkę (np. kontaktron)
  • Level 37  
    landy13 wrote:
    pgnige wrote:

    Kolejna - konfiguracja portów odbywa się na rejestrze PORTC, a nie PINC, który jest przeznaczony do odczytu stanu pinu portu c.

    To nieprawda. Konfiguracja odbywa się w rejestrze DDR a nie PORT. W Bascomie pojedyńcze piny konfiguruje się właśnie
    Code:
    Config PINX.Y = Input/Output
    Także użycie waitów do odmierzania czasu opuszczania rolety nie zda egzaminu. Można liczyć obroty wałka lub zastosować krańcówkę (np. kontaktron)


    \Tak na dobra sprawe to Bascom akceptuje na rowni wszystkie TRZY lub wiecej form konfiguracji portow; mozesz uzywac np. dla portu D:

    Config PORTD = ..... ' konfiguracja calego portu
    Config PORTD.x =...... ' konfiguracja dowolnego pinu
    Config PIND.x = ' konfiguracja dowolnego pinu
    DDRD = ........ 'odpowiednia wartosc liczbowa dziesietna, binary, lub hex reprezentujaca konfiguracje calego portu, gdzie 0 - input; 1- output.

    Tomi0987
    [quote]
    $REGFILE = "roleta.dat"
    Tu jest nazwa file (w Bascom) twojego processora a nie nazwa projektu.

    e marcus
  • Level 10  
    pgnige wrote:
    Witam, pierwsza sprawa jest taka, że $regfile dołącza bibliotekę danego mikroprocesora.
    Kolejna - konfiguracja portów odbywa się na rejestrze PORTC, a nie PINC, który jest przeznaczony do odczytu stanu pinu portu c.
    Jeszcze dobrze by było nadać początkowe wartości pinów portów tzn. wejścia podciągnąć do 1, a wyjścia 0
    Portd = 255
    Portc = 0
    Odpowiadając na zadane pytanie, najprostszym sposobem jest zawieszenie procesora funkcją wait np.:

    Code:
    If Pind.5 = 0 then
    
      Set Portc.2
      Wait 12
      Reset Portc.2
    Endif
    If Pind.6 = 0 then
      Set Portc.1
      Wait 12
      Reset Portc.1
    Endif




    Dzięki za wszystkie porady. Na razie potrzebuje programu aby roleta zjeżdżała w dół. Później będę musiał dopisać program aby podczas zwijania rolety zatrzymała się gdy transoptor odczyta czarny pasek z tyłu rolety.

    Sygnał będzie obierany przez radiolinie wiec nie będzie trzeba eliminować drgania.


    Więc na razie powninno być tak?

    Code:
    $REGFILE = "m8def.dat"
    
    $CRYSTAL = 8000000

    Config Pind.5 = Input `przycisk 1
    Config Pind.6 = Input `przycisk 2
    Config Pinc.0 = input  `transoptor
    Config Pinc.2 = Ouput `roleta w dół
    Config Pinc.1 = Ouput `roleta w górę

    P1 Alias Portd.5 `przypisanie nazwy włącznikom
    P2 Alias Portd.6
    S1 Alias Portc.2 ` przypisanie nazwy wyjścia do przekaźników
    S2 Alias portc.1

    do

    If P1 = 0 then
      Set S1
      Waitms 12000
      Reset S1
    Endif

    lop
  • Level 30  
    e marcus To prawda że Bascom akceptuje wiele sposobów konfiguracji. Mój sprzeciw dotyczył jednak rejestru w którym zapisuje się konfigurację.Chyba Ty nie uważasz tak jak pgnige że kierunek portu ustawia się w rejestrze PORT?

    Tomi0987 A czemu nie wykorzystasz transoptora przy rozwijaniu rolety?
    Loop pisze się przez dwa "o", a output z "t" w środku. Pisz od razu w Bascomie, unikniesz takich literówek.
  • Level 10  
    Transoptor, wykorzystam go do zatrzymania rolety gdy będzie się zwijała,
  • Level 43  
    Ciekawe gdzie wy dacie te transoptory i jak je podłączycie.
    Poproszę oi schemat, aby można było dalej weryfikować program.
  • Level 33  
    Witam
    Jak masz dobrą mechanikę to można się pokusić o pomiar prądu silnika rolety, jak jedzie w dół to prąd będzie stosunkowo mały, jak dojedzie do końca i zacznie ciągnąć roletę do góry to pobór prądu się zwiększy, przy zwijaniu z kolei jak dojedzie do końca i przyblokuje to prąd się zwiększy znacząco.
    Jeśli jesteś w stanie to pomierzyć to można obyć się bez krańcówek i transoptorów.
    Piotr