Autorul poate fi contactat la adresa: Login pentru adresa
Scopul proiectului este de a realiza un incarcator pentru acumulatorul telefonului mobil, folosind ca sursa de energie un panou solar ce se orienteaza dupa cea mai puternica sursa de lumina. Ceea ce isi propune proiectul este sa dezvolte acest model in scop pedagogic, deoarece utilitatea acestuia este redusa, placa de baza fiind ea insasi alimentata la o sursa de tensiune ce putea incarca acumulatorul telefonului.
Realizarea acestui proiect presupune existeanta unui panou solar, care se va orienta dupa cea mai puternica sursa de lumina. Orientarea panoului este realizata cu ajutorul unui servomotor care va invarti o placa de suport, amplasata la 45 de grade, pe care se va afla panoul solar si doi senzori de intensitate luminoasa. Dupa identificarea sursei de lumina, tensiunea va fi directionata catre incaratorul acumulatorului.
Schema bloc:
Necesarul de materiale este urmatorul:
1. Panou soalr: 1V 100mA
2. Micro servomotor SG90
3. Modul fotorezistor - 2 bucati
4. Sursa Pololu Step-Up U1V10F5 de 5 V (ridicatoare)
5. Incarcator TP4056 cu MICRO USB pentru Baterie LiPo (1A)
Servomotorul va fi actionat de catre microcontroller, iar alimentarea se va face de la placa de baza. Microcontrollerul va colecta de asemenea si datele oferite de senzori. Iesirea panoului solar va fi conectata la sursa ridicatoare si stabilizatoare de tensiune, care va genera un curent ce va avea tensiunea de 5V. Acest curent va fi redirectat catre incarcatorul specificat, iar din acela catre telefon.
Valorile oferite de senzorii de intensitate luminoasa vor fi colectati de pe pinii portului A. Pentru acest lucru voi folosi urmatoarele functii:
void ADC_init(void){ #ifndef ADC_USE_IRQ
// enable ADC with: // *reference AVCC with external capacitor at AREF pin // *without left adjust of conversion result // *no auto-trigger // *no interrupt // *prescaler at 128 ADMUX = (1 << REFS0); ADCSRA = (1 << ADEN) | (7 << ADPS0);
#else
// enable ADC with interrupt ADMUX = (1 << REFS0) | (1 << ADC_INIT_CHANNEL); ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADIE) | (7 << ADPS0);
#endif }
int ADC_get(uint8_t channel){ #ifndef ADC_USE_IRQ
// start ADC conversion on "channel" // wait for completion // return the result ADMUX = (ADMUX & ~(0x1f << MUX0)) | channel;
ADCSRA |= (1 << ADSC); while(ADCSRA & (1 << ADSC));
return ADC;
#else
return ADC_value[channel];
#endif }
Servomotorul va fi rotit 180 de grade, timp in care se va identifica valoarea cea mai mare a intensitatii. Dupa aceea, panoul va fi adus in acea pozitie.
Rezultatul este unul multumitor, cea mai puternica sursa de lumina putand fi determinata cu o precizie destul de ridicata! Un mic neasjuns il constituie partea de incarcare efectiva, panoul generand un curent foarte mic pentru a putea realiza incarcarea intr-un timp optim. Aspectul este unul dragut. Echipamentul poate fi usor de transportat.
In urma realizarii proiectului am ramas cu cunostinte tehnice considerabile. Proiectul a fost unul inedit, nemaifacand asta pana acum. Indeplinirea obiectivului mi-a adus multa satisfactie. Sper ca in viitor sa pot dezvolata si alte proiecte de acest fel.
Arhiva atasata contine resursele folosite, documente utile si un fisier de cod provizoriu.
Datasheet ATmega324A - http://cs.curs.pub.ro/wiki/pm/_media/doc8272.pdf
Descriere Micro Servo SG90 - http://www.micropik.com/PDF/SG90Servo.pdf
Descriere Sursa Pololu Step-Up - https://www.pololu.com/product/2564