Skocz do zawartości

esp32 błąd biblioteki


Michal88

Pomocna odpowiedź

Ponieważ nie wiem jak się to coś debuguje, to sugerowałbym po prostu użyć mocy portu szeregowego, bo pewnie jakiś ma, być może nawet przez USB wystawiony i wyświetlać sobie w pętli z jakimś delay wartość odczytywaną z pinu kontaktronu i z tym pracując naprawić tę część.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Diodę można łatwo "przetestować" komentując if-a:

void loop() {
  /*if (digitalRead(KONTAKTRON) == LOW) { //Jeśli czujnik zwarty
 //Stan OK - dioda swieci caly czas
    digitalWrite(LED_BUILTIN, HIGH);
  } else {*/
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);//Stan ALARM - dioda  mruga
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
  //}
}

Ale moim zdaniem sterowanie diodą jest poprawne, może ten kontaktron po prostu nie działa tzn. zwiera cały czas?

Link do komentarza
Share on other sites

Mam jeszcze jeden pomysł - dodanie delay po digitalWrite

void loop() {
  if (digitalRead(KONTAKTRON) == LOW) { //Jeśli czujnik zwarty
 //Stan OK - dioda swieci caly czas
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
  } else {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);//Stan ALARM - dioda  mruga
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
  //}
}

 

Link do komentarza
Share on other sites

45 minut temu, Elvis napisał:

Diodę można łatwo "przetestować" komentując if-a:

void loop() {
  /*if (digitalRead(KONTAKTRON) == LOW) { //Jeśli czujnik zwarty
 //Stan OK - dioda swieci caly czas
    digitalWrite(LED_BUILTIN, HIGH);
  } else {*/
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);//Stan ALARM - dioda  mruga
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
  //}
}

Ale moim zdaniem sterowanie diodą jest poprawne, może ten kontaktron po prostu nie działa tzn. zwiera cały czas?

40 minut temu, Elvis napisał:

Mam jeszcze jeden pomysł - dodanie delay po digitalWrite

void loop() {
  if (digitalRead(KONTAKTRON) == LOW) { //Jeśli czujnik zwarty
 //Stan OK - dioda swieci caly czas
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
  } else {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);//Stan ALARM - dioda  mruga
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
  //}
}

Nic się nie dzieje nie ma reakcji dioda nie świeci.

Link do komentarza
Share on other sites

To pozostaje jeszcze zakomentować fragment funkcji setup, czyli:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
/* 
  pinMode(KONTAKTRON, INPUT_PULLUP); //Kontaktron jako wejście
  
  digitalWrite(LED_BUILTIN, LOW); //Dioda wyłączona
*/
}

O ile rozumiem kod będzie teraz identyczny z działającym Blink. Ciekawe czy zadziała

Link do komentarza
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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.