Arduino - Solar Tracker - Otáčanie za Slnkom

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

Joooll
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 21 Jan 2018, 21:07

Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Joooll » 21 Jan 2018, 21:17

Dobrý deň.
Potreboval by som pomôcť pri tvorení kódu pre natáčanie solárneho panelu za Slnkom.
Používam Arduino UNO (nejaká čínska kópia), krokový motorček staršieho typu, 2 fotorezistory (+ 2k2Ω rez.), L293D motor driver od DK Electronics Obrázok
moje knižnice Obrázok
a kód, ktorý som tak nejak zostavil zo všetkého možného

Kód: Vybrať všetko

const int rightSensorPin = A0;
const int leftSensorPin = A1;
int rightSensorRead = 0;
int leftSensorRead = 0;
int rightLightPct = 0;
int leftLightPct = 0;
int degreeChange = 1;

//Arduino's CustomStepper library
//Author:  Igor Campos
#include <AFMotor.h>
#include <CustomStepper.h>
AF_Stepper motor(48, 2);

void setup() {
  Serial.begin(9600);
  motor.setSpeed(5);
 
}

void loop() {
  rightSensorRead = analogRead(rightSensorPin);
  leftSensorRead = analogRead(leftSensorPin);
  rightLightPct = map(rightSensorRead, 0, 1023, 0, 100);
  leftLightPct = map(leftSensorRead, 0, 1023, 0, 100);
  degreeChange = map(abs(rightLightPct-leftLightPct),0,100,2,10);
  Serial.print("right =  ");
  Serial.print(rightSensorRead);
  Serial.print(" left =  ");
  Serial.print(leftSensorRead);
  Serial.print(" Pct r/l = ");
  Serial.print(rightLightPct);
  Serial.print("/");
  Serial.println(leftLightPct);
  if(rightLightPct < 30 && leftLightPct < 30){
    Serial.println("No sun detected!");
  }else if(rightLightPct > leftLightPct){
    Serial.println("Turning CCW!");
    motor.step(1, FORWARD, MICROSTEP); 
    
  }else if(rightLightPct < leftLightPct){
    Serial.println("Turning CW!");
    motor.step(1, BACKWARD, MICROSTEP); 
    
  }

}
Problém je, že buď sa motorček točí iba do jednej strany aj keď je daný fotorezistor zakrytý, netočí sa vôbec, seká sa...
Túto prácu potrebujem prezentovať počas dňa čiže je tam veľa svetla, fotorezistory som preto dal do gumených tmavých úchytov pre perá aby neboli priamo ožarované a chcem aby sa natáčali za svetlom baterky.
Motor som testoval pomocou knižnice od Datafruit a tam príklad pre Stepper motor a funguje ako má čiže chyba by mala byť v mojom kóde.
Ďakujem za každú radu.
0

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4319
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa misocko » 21 Jan 2018, 21:57

existuju asi dve moznosti, pozries si na nete ako sa to robi , alebo sa to chces aj naucit a zacnes rozmyslat (tu prevazne ako stroj, pocitac, to zariadenie ktore sa snazis naprogramovat)
zakladna otazka, skusil si si nejakym merakom co ti lezie na senzory ? alebo si len vypisuj hodnoty na serial monitor a presuvaj svetlo baterky
nasledne sa ty sam skus spravat tak ako by sa mal spravat ten kod.
trochu napoviem
1. nemas osetrenu poziciu ked je svetlo na oboch senzoroch rovnake (tu by si mal hodit odchylku ktora este bude povazovana za rovnake svetlo (daj si vypis na ten serial a zbadas co tam lieta)
2. umiestnenie senzorov do nejakej trubky? uplne zle, nema sancu najst tvoje svetlo baterky, pouzij obycajnu prepazku

porovnanie jednej prepazky a tvojich trubiek, v trubkach sa svetlo k senzorom nedostane, ak nieje v pozorovacom uhle

hej, a zacal by som rozsvietenim jednej z dvojice led , kazda ti bude ukazovat na ktoru stranu sa to bude tocit az to budes mat vychytane, a napojis to na motor. hups z nuly na toto asi nepojde bez nejakych zakladov.
Prílohy
Capture.PNG
0

Joooll
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 21 Jan 2018, 21:07

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Joooll » 21 Jan 2018, 22:11

Samozrejme nejak postupne sa snažím učiť ale návody na ytb, nete celkovo mi nejak nepomohli tak skúšam aj tu.
Vďaka za to porovnanie a určite to vymením za prepážky.
A k tomu prvému neošetrenému bodu keď je svetlo rovnaké nad tým som tiež rozmýšľal ale nejak som na to nevedel prísť.
Skúšal som, že ak sa bude rovnať pravá strana ľavej tak panel stojí no nepomohlo.
Pozriem ešte na tie hodnoty vypisovača no čo som dnes skúšal tak tie hodnoty behali od 1023 po približne 100 niečo ale bol tam problém že aj keď ten fotorezistor bol úplne zakrytý tak hodnoty skákali.
EDIT: Napadlo mi, že by som mohol vynechať jeden fotorezistor a nechať tam iba jeden. Ak by na sa na ňom zdvihol odpor tak by sa panel otáčal doprava napr. (smerom ku západu Slnka proste) a ak by sa znovu klesol tak by sa zastavil.
0

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4319
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa misocko » 21 Jan 2018, 22:35

Je jasne ze si na zaciatku. Mas sa vela co ucit. Nacitat senzor dajme tomu 100x v cykle a spriemerovat . Ten vysledok potom pouzit. PS viez ze hodnoty skacu a divis sa ze to nejde?
0

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa alidedko » 21 Jan 2018, 22:41

S tym jednym senzorom to nie je az tak dobry napad, sa ti to bude krutit dookola jak kolotoc :)

Co sa tyka "kludoveho" stavu, porovnavaj si rozdiel hodnot, uzavri si to cele do jednej kombinovanej podmienky (ak s1-s2>30 alebo s2-s1>30, tak ...) a mohlo by ti to ist.
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

Joooll
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 21 Jan 2018, 21:07

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Joooll » 21 Jan 2018, 22:46

Nedivím sa, že to nejde.
Hľadám spôsob ako by to išlo :D
A s tým jedným senzorom - ak by tam bola konečná poloha, kde sa panel zastaví a bude stáť?
Skúsim aj tú kombinovanú podmienku.
0

Používateľov profilový obrázok
marioo
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1112
Dátum registrácie: 15 Júl 2012, 12:28
Bydlisko: SVK
Vek: 50

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa marioo » 21 Jan 2018, 22:49

Zistiť ake čisla davaju tie fotorezitory...

Potom trošku matematiky a podmienok aby si zistil čo je podmienkou pre pohyb zľava doprava, čo sprava doľava a čo je - poludnie :) alebo skôr slnko kolmo na sklon solarnych panelov...
0

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa alidedko » 21 Jan 2018, 22:49

Ano, len aby si na otacanie panela nestratil viac energie, ako samotnym otacanim ziskas :D

Jedine krajne polohy, ale ako osetris situaciu, ze ho skrutis doprava az na doraz, nenajde slnko, pojde dolava, nenajde slnko, lebo medzitym pride mrak ... Hadam nebude sondovat jak radar NASA :D
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

Používateľov profilový obrázok
marioo
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1112
Dátum registrácie: 15 Júl 2012, 12:28
Bydlisko: SVK
Vek: 50

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa marioo » 21 Jan 2018, 22:53

Tak možno proti radaru NASA niekde ukladať poslednu polohu a v nejakej tabulke mať bežné polohy slknka vzhľadom na zemepisnu polohu a čas a datum....

Ale to asi nie je cieľom práce ...

V principe je to to iste /pri dvoch fotorezistoroch / ako ked male roboticke autičko beha po čiernej čiare... ... hľadaj inšpiraciu tam ak to nechceš prerobiť na 3 senzory...
0

Joooll
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 21 Jan 2018, 21:07

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Joooll » 21 Jan 2018, 23:09

No mne ide iba o jedno a to aby sa ten panel otáčal za Slnkom, nič viac.
Je jedno či spotrebuje viac, atď.
Mne ide len o ten pohyb, spraviť to tak jednoducho ako sa len dá aby to dokázal spraviť človek s minimom skúsenosti.
(Presnejšie žiaci strednej školy)
0

alois

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa alois » 22 Jan 2018, 05:38

iba napoviem hotovým výrobkom

Originál jednopanelového natáčacieho systému má iba:

1. napájanie priamo z panelu, takže nepriamo má informáciu aj deň/noc
2. má informáciu o napätí na panely počas prevádzky (že by časť referenčních dát o polohe?)
3. má dva koncové spínače na krajné polohy východ / západ
4. autoštart (v čase kedy sa objaví prvé napájacie napätie na svorkách panelu) nakrokuje do krajnej polohy na východ s referenciou bola noc
5 NEMÁ žiadne fotobunky pracujúce s rozdielom osvitu!

A funguje to spoľahlivo.

Ak chceš robiť pomer osvitu v trubičkách, O.K. len dva snímače s přepážkou musíš mať tak, aby si UVAŽOVAL s odrazom svetla od objektov (difúznym svetlom) Snímanie osvetlenia by som robil komponentom, ladeným iba do určitého spektra svetla. A při takýchto systémech sekunda hore dole, takže nerozkmitať sústavu. Ďalšie porovnanie by si mal robiť s celkovým osvetlením, lebo ak zájde slnko za mrak, tak to neznamená, že zmenilo polohu. Rozumne zvoliť relatívny čas následnej kontroly.

Joooll
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 21 Jan 2018, 21:07

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Joooll » 22 Jan 2018, 16:18

Dokúpil som dnes snímače čiže keď sa panel dotkne snímača tak jeden bude určovať koncovú a druhý začiatočnú polohu.
Obrázok
Počítam, že budem musieť(?) navrhnúť plošák je niečo na čo by som si mal dať pozor?
0

ondrozf
Pokročilý člen
Pokročilý člen
Príspevky: 995
Dátum registrácie: 06 Dec 2009, 00:00
Bydlisko: Pobedim
Vek: 43

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa ondrozf » 22 Jan 2018, 16:28

s týmto "snímačom" nič nenarobíš ,, nema potrebné IP na vonkajšie použitie ,,, a aký krokový motor chceš použit pre aký panel ?
0

Používateľov profilový obrázok
Tribec Zacks
Pokročilý člen
Pokročilý člen
Príspevky: 709
Dátum registrácie: 26 Jún 2010, 00:00
Bydlisko: Levice / Cork IRL
Vek: 41
Kontaktovať používateľa:

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Tribec Zacks » 22 Jan 2018, 16:46

@ Joooll
Ak sa jedna o maly projek "na stol" (sudim podla pouziteho motor driveru), tak by bolo mozno lepsie riesenie na natacanie pouzit RC Servo, ovladaju sa lahko pomocou PWM ktore ma aj arduino. btw ak sa s tym chces potrapit a prist na sposob ovladania natacania sam, tak vezmi do ruky pero a papier a rozpis si cely algoritmus, co a kedy ma robit, budes to mat podstatne lahsie ako to hned pisat do kodu a hackovat riadok po riadku taku a taku podmienku (idealne riesenie je na to stavovy automat imo).
tip: ak by si pouzil servo, tak podla sirky pwm pulzu vies urcit kde je natocene, odpadne ti tym sledovanie koncovych tlacitok na dorazoch pri otacani.
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.

Joooll
Okoloidúci
Okoloidúci
Príspevky: 6
Dátum registrácie: 21 Jan 2018, 21:07

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa Joooll » 22 Jan 2018, 21:55

Motor - M49SP-2K vytiahnutý z tlačiarne
Solar - Obyčajný malý fotovoltaický panel z Ali
0

Používateľov profilový obrázok
marioo
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1112
Dátum registrácie: 15 Júl 2012, 12:28
Bydlisko: SVK
Vek: 50

Re: Arduino - Solar Tracker - Otáčanie za Slnkom

Príspevok od používateľa marioo » 22 Jan 2018, 22:07

Tu je hotovy cely modul.. len pripojiš Vin a motor.... cena 4,36USD.. cca 4€ ...

https://www.ebay.com/itm/5V-Solar-Energ ... .l4275.c10

dole v texte je aj popis funkcie...
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok