Skocz do zawartości

esp32 błąd biblioteki


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ęść.

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?

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);
  //}
}

 

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.

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

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...