Skocz do zawartości

Sprawdzenie programu z warunkiem if


kuba3122

Pomocna odpowiedź

Mógłby ktoś rzucić okiem dlaczego pomimo niespełnienia warunku program wykonuje instrukcje w funkcji if ?

Program ma działać tak, że gdy na pinie 8 pojawi się napięcie wysyła sygnał na sterownik silnika krokowego który wykona 4 obroty. 

// defines pins numbers
const int stepPin = 5; 
const int dirPin = 2; 
int czujnik=8;

void setup() {
  
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
  pinMode(czujnik,INPUT_PULLUP);
}
void loop() {
  
  if(digitalRead(8)==HIGH){
  digitalWrite(dirPin,LOW); 
  for(int x = 0; x <= 800; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(800); 
    digitalWrite(stepPin,LOW);
    delayMicroseconds(800);}
  } 
  
  delay(3000);
  
}

 

Link do komentarza
Share on other sites

Pin jest zmostkowany przez krańcówke z pinem arduino na którym występuje 5V, wciśnięcie krańcówki zwiera obwód. PULLUP dlatego , że wcześniej próbowałem z samym INPUT na którym program również nie działał i tak już zostało.  

Sugerowałem się tym kodem:

void setup() {
  pinMode(8, OUTPUT); //Dioda jako wyjście
  pinMode(7, INPUT_PULLUP); //Przycisk jako wejście
  digitalWrite(8, LOW); //Wyłączenie diody
}
 
void loop()
{
  if (digitalRead(7) == LOW) { //Jeśli przycisk wciśnięty
    digitalWrite(8, HIGH); //Włącz diodę
  } else { //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
    digitalWrite(8, LOW); //Wyłącz diodę
  }
}

Rozumiem już różnicę w pojawia się a występuje.

Natomiast skoro jest tak jak piszesz to na pinie 8 nie ma napięcia - krańcówka jest normalnie rozwarta czyli warunek nie zostaje spełniony i program nie powinien wykonać instrukcji w nawiasie klamrowym funkcji if a sytuacja jest taka , że wykonuje i powoduje obroty silnika. 

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

Właśnie miałem pisać co poradzić na ten fakt , że wejście jest bardzo wrażliwe wystarczy wpiąć do wejścia przewód i dotknąć jego końca aby program ruszył. 

Poczytam coś jutro na temat pull-upa i pull-downa i bębę pytał dalej. Dzięki 😉

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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