Arduino + STEP 28BYJ-48

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
byfo
Příspěvky: 25
Registrován: 13 srp 2020, 11:25
Reputation: 0

Arduino + STEP 28BYJ-48

Příspěvek od byfo » 12 zář 2020, 11:08

Ahojte, mám trošku problém.

Aktuálne pracujem na kurníku pre sliepočky, a chcem ich automaticky zatvárať, aj otvárať. Používam motor STEP MOTOR 28BYJ-48, 2 vypínače (horný a dolný) + senzor svetla.

Príklad: Ak začne byť vidno, zapni motor, až dokedy nebude stlačené horné tlačidlo, následne motor vypni. Teraz čakaj, dokedy bude svetla málo, zapni motor a po stlačení dolného tlačidla, vypni, a čakaj na ráno........

Všetko by bolo super, v podstate, fungovať mi to funguje, ale prerušovane.. nakoľko to stále overuje podmienky, a je medzi tým pauza, ktorú nejak neviem ovplyvniť..

Kód: Vybrat vše

 void loop() 
{ 
  
  uint16_t lux = lightMeter.readLightLevel();
  Serial.print("Light: ");
  Serial.print(lux);
  delay(1);


  if ( lux > 700){ //ak svetlo je vacie ako, chod hore, dokedy nestlacim tlacidlo hore
     dirStatus =1; 
  }

  if ( lux < 10){  //ak menšie, chod dole, dokedy nestlacim tlacidlo dole
    dirStatus  = 2;      
  }

//if (digitalRead(dole) == HIGH && digitalRead(hore) == LOW) { // if BOTH the switches read HIGH podmienka pre vypnutie motora
//dirStatus =3;   
}


 if(dirStatus ==1){ 
   poleStep++; 
    driveStepper(poleStep);    
 }else if(dirStatus ==2){ 
   poleStep--; 
    driveStepper(poleStep);    
 }else{
  driveStepper(8);   
 }
 
 if(poleStep>7){ 
   poleStep=0; 
 } 
 if(poleStep<0){ 
   poleStep=7; 
 } 
// delay(1); 


}// loop


void driveStepper(int c)
{
     digitalWrite(Pin1, pole1[c]);  
     digitalWrite(Pin2, pole2[c]); 
     digitalWrite(Pin3, pole3[c]); 
     digitalWrite(Pin4, pole4[c]);   
}//driveStepper end here

je tu void, ktorý musí byť vždy spustený,je to možné ták, aby to neskákalo, respektíve, ako nadradím void driveStepper (int c)? alebo máte niekto knižnicu k tomuto motoru, poprípade lepší kód ako ja?


Vďaka moc.

Uživatelský avatar
jede_robot
Příspěvky: 53
Registrován: 15 led 2020, 21:18
Reputation: 0

Re: Arduino + STEP 28BYJ-48

Příspěvek od jede_robot » 13 zář 2020, 12:32

Zakomentuj tyhle tři řádky:

Kód: Vybrat vše

Serial.print("Light: ");
Serial.print(lux);
delay(1);
jrt
jederobot.cz, robodoupe.cz

byfo
Příspěvky: 25
Registrován: 13 srp 2020, 11:25
Reputation: 0

Re: Arduino + STEP 28BYJ-48

Příspěvek od byfo » 13 zář 2020, 20:21

Ahoj, ďakujem, pomohlo, ale delay (1); musí byť. - určuje rýchlosť

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 17 hostů