Skocz do zawartości
Komentator

Kurs Arduino II - #4 - przerwania, kontaktron, czujnik PIR

Pomocna odpowiedź

@drozdziak, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.

Dnia 8.11.2018 o 22:18, drozdziak napisał:

mega fajny artykuł! idealny do nauki 🙂

mam taki maly problem, bo napisalem prosty program ktory, jeśli odległość wskazania czujnika jest mniejsza niż 100 cm to włącza monitor i wyświetla tą wartość na monitorku przez 5 sek.

Cieszę się, że artykuł nadal jest pomocny. Jeśli chodzi o Twoje problemy to oczywiście warto zająć się dalszym rozwijaniem programu (filtrowanie i uśrednianie pomiarów), ale zacząłbym też od sprawdzenia elektroniki. Upewnij się, że masz dobre zasilanie, nie ma luźnych przewodów itd. Sprawdź też ustawienie czujnika, jeśli "patrzy" minimalnie w dół to możesz mieć czasami zakłócenia, bo czujnik np. zobaczy biurko, na którym leży itd.

Udostępnij ten post


Link to post
Share on other sites

Witam wszystkich serdecznie. Na wstępie chciałbym bardzo podziękować za kurs, który jest naprawdę świetnie napisany! Kawał dobrej roboty! 😄

Mam jednak problem który odkryłem podczas tej lekcji, mianowicie kontaktron podpięty do pinu 0 nie działa, przy sprawdzaniu problemu okazało się że to samo dotyczy np. diody LED. Nigdy nie miałem problemów z płytką aż do tej pory 😕 Możliwe jest uszkodzenie jedynie pojedynczego portu płytki? W moim przypadku wszystko oprócz pinu 0 działa poprawnie 😞 

Udostępnij ten post


Link to post
Share on other sites

Pokaż program - może tu masz błąd? Kontaktron i LED to chyba dwie różne sytuacje. Raz port jako WEJŚCIE, a innym razem jako WYJŚCIE.

Udostępnij ten post


Link to post
Share on other sites

W ramach testów wrzuciłem na płytkę kod żywcem skopiowany z kursu więc kod nie jest tutaj problemem. Zmiana definicji kontaktronu z pinu 0 na np pin 1 (oraz przepięcie kabla kontaktronu ;)) zalatwia sprawę, kontaktron działa prawidłowo 

Udostępnij ten post


Link to post
Share on other sites

Więc nadal nie wiesz co z tym portem. Do testów to sobie uruchom np. taki programik:

void setup() 
{
  pinMode(0,OUTPUT);
}

void loop() 
{
digitalWrite(0,HIGH);
delay(500);
digitalWrite(0,LOW);
delay(500);
}

Tu sprawdzisz działanie portu jako WYJŚCIE. Podłącz do niego katodę diody LED, a anodę tej LED przez rezystor np. 330R do +5V. LED powinien migać.

Jeśli chcesz sprawdzić działanie tego portu jako WEJŚCIE to możesz się posłużyć np. takim programem:

void setup() 
{
  pinMode(0,INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() 
{
Serial.println(digitalRead(0));
}

Teraz uruchamiasz monitor portu szeregowego i na port podajesz 0 czyli GND i nie podajesz (będzie 1 przez wewnętrzny PULLUP). W monitorze powinieneś widzieć 0 i 1.

Udostępnij ten post


Link to post
Share on other sites

Dzięki za odpowiedź, tak jak pisałem w pierwszym poście, sprawdzałem działanie LEDa na pinie 0 i dioda się wgl nie zaświeca. Przetestowałem drugi program który podesłałeś i Arduino wysyła do ciągle wartość 1, nie reaguje na wpięcie/wypięcie GND 😕

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

No to przy założeniu, że do Arduino nic nie było podpięte (nawet PC - Arduino zasilane np. z bateryjki nie z USB!) to może mamy do czynienia z fizycznym uszkodzeniem portu.

Edytowano przez Belferek

Udostępnij ten post


Link to post
Share on other sites

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ę »

×