Arduino Polska Forum

Pełna wersja: Pierwszy wlasny program
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2
Witam
Zaczalem zabawe z arduino. Mam problem z programikiem. Chcialem po podaniu napiecia na wej 8 uruchomic diode na wyj 9. Zalaczam zdjecia z programu.
Wiem ze pewnie to jakis banal ale nie wiem co zrobic. Sam czytam i szukam tez.
Spróbuj zamienić if(pinMode8 = HIGH) na if(pinMode8 == HIGH). Smile
Dziekuje, ale tez nie zadzialalo a tak na marginesie == oznacza rowno?
też jestem ciekawy co to za różnica Smile
A moje drugie pytanie. Probowalem ustawic output8 i 9 do roznej czestotliwosci migania diody led. Ustawilem digitalWrite, delaly ale diody migaly tak samo. Czy nie mozna pisac warunkow jeden pod drugim? Weryfikacja przeszla niby.
eeeeee ten program to hmmmmm bubel nie możesz oczytać zainicjowanej danej int która z zadeklarowanym wyjściem nie ma nic wspólnego, poniżej masz jak to powinno być w 3 formach . Pin 8 nie musi być do masy albo do 5v inaczej będzie w trybie float i będzie sobie migało jak chce .

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
 if ( digitalRead(8) == HIGH )digitalWrite(9,HIGH);
 if ( digitalRead(8) == LOW )digitalWrite(9,LOW);
}

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
 int pin8 = digitalRead(8);
 if ( pin8 == HIGH )digitalWrite(9,HIGH);
 if ( pin8 == LOW )digitalWrite(9,LOW);
 
}

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
 int pin8 = digitalRead(8);
 if ( pin8 == HIGH ){ digitalWrite(9,HIGH); }
 else{ digitalWrite(9,LOW); }
}

i jeszcze 1 forma zapisu chyba najprymitywniejsza

Kod:
void setup() {
  pinMode(8,INPUT);
  pinMode(9,OUTPUT);
}
void loop() {
digitalWrite( 9 , digitalRead(8) );
}
(26-11-2015, 01:40)JasQ napisał(a): [ -> ]eeeeee ten program to hmmmmm bubel nie możesz oczytać zainicjowanej danej int która z zadeklarowanym wyjściem nie ma nic wspólnego, poniżej masz jak to powinno być w 3 formach . Pin 8 nie musi być do masy albo do 5v inaczej będzie w trybie float i będzie sobie migało jak chce .

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
 if ( digitalRead(8) == HIGH )digitalWrite(9,HIGH);
 if ( digitalRead(8) == LOW )digitalWrite(9,LOW);
}

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
 int pin8 = digitalRead(8);
 if ( pin8 == HIGH )digitalWrite(9,HIGH);
 if ( pin8 == LOW )digitalWrite(9,LOW);
 
}

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
 int pin8 = digitalRead(8);
 if ( pin8 == HIGH ){ digitalWrite(9,HIGH); }
 else{ digitalWrite(9,LOW); }
}

i jeszcze 1 forma zapisu chyba najprymitywniejsza

Kod:
void setup() {
 pinMode(8,INPUT);
 pinMode(9,OUTPUT);
}
void loop() {
digitalWrite( 9 , digitalRead(8) );
}

Witam
Dopiero teraz mam chwilke czasu.. a wiec dioda caly czas lekko swieci po przylozeniu stanu wysokiego na pin8  dioda swieci mocniej. Dlaczego wyjscie nie jest w stanie low tylko caly czas jakby w high?
To jest float czyli lata po pełnym zakresie jak chce , arduino nie ma wewnętrznych rezystorów do masy ma do vcc i możesz je wyzwolić przez INPUT_PULLUP musisz dać rezystor 10k między pin 8 a masę bo inaczej będzie właśnie jak piszesz
(27-11-2015, 22:31)JasQ napisał(a): [ -> ]Dziekuje bardzo za odpowiedz..To juz wszystko wyjasnia. A co oznacza zapis "=" i "=="?

To jest float czyli lata po pełnym zakresie jak chce , arduino nie ma wewnętrznych rezystorów do masy ma do vcc i możesz je wyzwolić przez INPUT_PULLUP musisz dać rezystor 10k między pin 8 a masę bo inaczej będzie właśnie jak piszesz
Ponieważ w funkcji "if" można zapisać także wzory np. " if ( (x+y) - 10 == 0 ) " żeby nie było pomyłek w zapisie programiści wpadli na pomysł że dla porównania pisze się " == " a dla równości " = " i tyle

poniżej przykład jak wykorzystać INPUT_PULLUP i nadal zachować funkcjonalność poprzedniego programu bez migania diody

Kod:
void setup() {
pinMode(8,INPUT_PULLUP);
pinMode(9,OUTPUT);
}
void loop() {
byte X ;
if ( digitalRead(8) == LOW )X = HIGH ;else X = LOW ;
digitalWrite( 9 , X );
}
Stron: 1 2