Skocz do zawartości

Podłączenie led-a i switch-a GND czy Vcc


Pomocna odpowiedź

Napisano

Zaczynam bawić się z programowaniem AVR na razie w basom i stanąłem przed pewnie banalnym problemem, które podłączenia led-a i switch-a są poprawne?

Na internecie widziałem przyciski pociągnięte i to gnd i to vcc i już nie wiem. Jeżeli da się podłączyć i tak i tak to trzeba to jakoś ująć w programie?

(pomińmy opornik przy ledzie)

LED obojętnie, jeśli będzie podłączona do VCC(b), to włączać ją można stanem niskim na pinie uc, jeśli do GND(a), to świecić będzie, jeśli na wyjściu uc będzie stan wysoki. Jeśli chodzi o przycisk to zdecydowanie lepiej do GND(b), bo nie musisz używać dodatkowego rezystora - podciągasz wewnętrznym do VCC. Jeśli byłby z kolei podłączony do VCC(a), to musiałbyś samodzielnie zewnętrznym rezystorem podciągnąć do GND.

  • Pomogłeś! 1
Jeśli byłby z kolei podłączony do VCC(a), to musiałbyś samodzielnie zewnętrznym rezystorem podciągnąć do GND.

Z tego co słyszałem to są uC które mają pull-down'a.

Dziękuje wszystkim za pomoc, coś mi z tą elektroniką nie idzie, muszę się rozejrzeć za jakąś dobrą książką 🙂

Mam niestety jeszcze jeden problem ponieważ led działa silnik nie 🙁

Zadaniem programu jest to aby po wciśnięciu switcha obojętnie który silnik ruszył się w obojętnie którym kierunki.

Może wskażecie mi jakieś nieścisłości w schemacie lub (i to bym wolał) programowe.

   $regfile = "m8def.dat"
   $crystal = 1000000


Config Portb = Output
       Portb = &B0000000
Config Portd = Output
       Portd = &B0000000
Config Portc = Input
       Portc = &B1111111


Do


  If Pinc.0 = 0 Then
  Portb.0 = 1
  Portb.1 = 1
  Portb.2 = 1
  Portd.0 = 1

  Waitms 1
  Portb.0 = 0
  Portb.1 = 0
  Portb.2 = 0
  Portd.0 = 0
  End If


Loop

   End

PC0 to led podłączony do gnd

pb0 to switch podłączony do gnd

Dziękuje wszystkim za pomoc, coś mi z tą elektroniką nie idzie, muszę się rozejrzeć za jakąś dobrą książką 🙂

To twój najlepszy pomysł jaki widziałem. Masz:

- źle napisany program - brak włączonego podciągania pinu switcha do Vcc

- źle zaprojektowany układ - brak sprzętowego rezystora podciągającego pin switcha do Vcc

Wybierz sobie odpowiedź z powyższych.

Piszesz, że do PC0 jest podłączony led, a w programie cały port C masz ustawiony jako wejście, w dodatku nawet sprawdzasz stan na pinie z ledem (if pinc.0). Ogólnie coś pokopane masz porty w programie.

Po pierwsze primo, wg tego co napisałeś (nie wg schematu) to w if'ie sprawdzasz stan na LEDzie, a później ustawiasz pin switch'a na 1.

Po drugie primo, żeby załączyć któryś z kanałów mostka to musisz podać stan wysoki na Enable A/B, wysoki/niski na input 1/3 i niski/wysoki na input 2/4.

Po trzecie primo, program ni w ząb nie pasuje do schematu.

Jeśli byłby z kolei podłączony do VCC(a), to musiałbyś samodzielnie zewnętrznym rezystorem podciągnąć do GND.

Z tego co słyszałem to są uC które mają pull-down'a.

Są, na przykład STM32F1xx i wyżej. 🙂

Jeśli byłby z kolei podłączony do VCC(a), to musiałbyś samodzielnie zewnętrznym rezystorem podciągnąć do GND.

Z tego co słyszałem to są uC które mają pull-down'a.

Są, na przykład STM32F1xx i wyżej. 🙂

Nie pisałem o tym, bo podstawowe uc AVR go nie mają, a wątpię aby kamil-s używał innych skoro zadaje takie pytanie 😉

Racja poplątałem się w kable, gdy podłączyłem wszystko porządnie i zrobiłem minimoduły np z kabelka gniazda i diody wszystko stało się przejrzyste i bardziej estetyczne 🙂

Mam jeszcze obawę dot. PWM. U mnie im mniejsze pwm tym silnik się szybciej kręci. 1 to full, a 255 stoi w miejscu. czy tak ma być? po innych programach widzę że chyba na odwrót.

$regfile = "m8def.dat"
$crystal = 1000000

'Konfiguracja sterowania sprzętowym PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

Config Pind.0 = Output
Portd.0 = 1

Do

Pind.0 = 1
Pwm1a = 1

Loop
End

kamil-s, zmień kod na taki:

$regfile = "m8def.dat"
$crystal = 1000000

'Konfiguracja sterowania sprzętowym PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up

Config Pind.0 = Output
Portd.0 = 1

Do

Pind.0 = 1
Pwm1a = 1

Loop
End 
  • Pomogłeś! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...