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

#11861
marvik.jiri
Účastník

Zkusil jsem udělat nástřel struktury programu.

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

void setup() {
pinMode(11, OUTPUT); //nastav pin 11 jako vystup = motor doprava – solar natáčí k východu
pinMode(12, OUTPUT); //nastav pin 12 jako vystup = motor doleva – solar natáčí k západu
pinMode(10, INPUT); //nastav pin 10 jako vstup = koncový spínač východ
pinMode(9, INPUT); //nastav pin 9 jako vstup = koncový spínač západ
pinMode(8, OUTPUT); //nastav pin 8 jako vstup = rele zapínání filtrace a transformátoru po motor solárního panelu
}

pokud na teplotním snímači ovzduší je hodnota menší než 25 = zastav program

pokud na teplotním snímači ovzduší je hodnota větší než 25 = pokračuj dále // například 25°C
digitalWrite (8,HIGH) // zapne filtraci a napájení transformátoru (půjde zapínat i samostatně přes vypínač)
pokud (hodnota světla menší na „pinR1“ než 10 = nedělej nic //hodnota je informativní
pokud (hodnota světla větší na „pinR1“ než 10 = otáčej motor doprava až na koncový spínač K1 digitalWrite (11,true) //číslo pinu je informativní
pokud sepnuto pinK1 = digitalWrite(11,LOW); //na pinu 11 vypni proud = motor se zastavý
pokud na pinu R2 bude větší hodnota než na R1 = digitalWrite (12,true) – /* tady vycházím z toho že pin R1 je více na východ a R2 na západní stranu
je nutné určit rozsah (od – do) jalové hodnoty mezi R1 a R2, aby nedocházelo k tomu, že se bude chtít natáčet každých pár minut o milimetry.
Ještě k tomu snímámí hodnot z fotorezistorů by se měla dát určitá časová prodleva – třeba 30s z důvodu kdy půjde mrak a zastíní jeden z nich
*/
pokud sepnuto pinK2 digitalWrite(12,LOW); //na pinu 12 vypni proud = motor se zastavý
pokud na teplotním snímači vody je více jak 28°C = digitalWrite (12,true) až na koncový spínač K2 /* bude se snažit odstínit panel ze sluníčka
Ono by to chtělo zase nějak zprůměrovat a k večeru přetočit na východní stranu aby později večer a při západu na panel nesvítilo sluníčko, ale to
by se teď asi nemuselo řešit. To by se dalo až úplně nakonec v horším případě vynechat zcela. Tohle měli řešit ty další dva pevné fotorezistory*/
Pokud na teplotním snímači ovzduší menší teplota než na sníémači vody zastav filtraci digitalWrite (8, LOW)