Close

Odpověď na: Otáčení solárního panelu za sluncem

Úvodní stránka Fórum Vaše projekty Arduino Otáčení solárního panelu za sluncem Odpověď na: Otáčení solárního panelu za sluncem

#11857
Vojtěch Vosáhlo
Účastník

Já osobně bych u takového projektu volil DS18B20, dají se najít i v hezkých vodotěsných obalech a nikdy s nimy nebyl problém. Pojďme tedy na takovou reprezentaci programu slovy:



//definice pinů a proměnných

smyčka{

 pokud (cas = den){
   pokud(chceme ohrivat){
     //třeba 10, chce to nějaký prostor, testovat jestli se = 0 by nemělo význam
     dokud (rozdil fotorezistoru < 10){
       otacejMotor(strana = x); //Otáčej motor na stranu kde je na fotor. víc světla
     }
   }nebo pokud(nechceme ohrivat){
     otacejMotor(strana = x); //Otáčej motor tak aby na pannel svítilo co nejmíň světla - nebo nastav panel na jednu z konečných pozic
   }  
 }pokud (cas = noc); // Nedelej nic
}

Je to super zjednodušené ale pomůže to pro představu. Osobně bych začal „kódit“ trochu od prostředka. Pojďme zkusit třeba zrealizovat funkci co přečte rozdíl mezi fotorezistory.


int rozdilRezistoru(){
  int R1 = analogRead(pinR1); //Přečtu napětí na prvním fotorezistoru
  int R2 = analogRead(pinR2); //Přečtu napětí na druhém fotorezistoru
  int rozdil = R1 - R2; //Rozdíl napětí
  return rozdil; //Vrátím rozdíl napětí jako hodnotu
}

Tahle funkce vám jednoduše vrátí rozdíl mezi senzory. Ale pozor, není to hodnota napětí. analogRead(); totiž vrací hodnoty 0-1023 (10bit) které jsou vlastně namapované na referenci. Tzn. s referencí 5V znamená hodnota 0 0V a 1023 5V. Je to zatím srozumitelné? Můžete začít stavět základní strukturu programu podle toho co jsem napsal výše a pak přidávat funkce které vám ulehčí práci.

Ptejte se na vše co vám přijde na mysl. Taky si kdyžtak řekněte pokud popisuju něco co jsou pro vás už banálnosti, opravdu nevím jak jste na tom 🙂