Besoin d'aide pour code arduino

Le but est d’afficher l’intensité et la tension délivrés par un panneau solaire de 3.5w/6v

Euh… Bonjour @Boyd et bienvenu… Tu pourrais peut-être donner plus d’information sur ton souci, là, c’est un peu léger :wink:

J’ai remis le message dans un format moins pourri mais je me demande comment certains s’imaginent avoir de l’aide avec des trucs aussi mal détaillés / écrits…

2 « J'aime »

salut. désolé je suis nouveau je suis pas encore en phase avec les coutumes ici. bref je dois monter un dispositif avec un arduino uno et un capteur me permetant d’afficher sur un écran LCD 16*2 l’intensité et la tension d’un panneau solaire de 3.5w - 6v. en outre je dois proceder au calcule me permettant d’afficher la puissance fournie par le panneau ainsi que l’energie généré. pour l’instant mon souci majeure reside dans le faite que je n’obtient que des valeurs trés basses( mA, mv, etc…) en utilisant comme charge des téléphones et des power bancs. est-ce normal? dois-utiliser des charges plus grandes comme une ampoule 9w par exemple?

salut. sincerement désolé pour cette entrée catastrophique. en faite je suis en train de réaliser un dispositif avec un arduino uno et un capteur de courant asc712. le but et de d’afficher l’intensité et la tension délivrés par le panneau via un afficher LCD 16*2. le code est en partie écrit et le montage aussi deja réaliser( du mieux que j’ai pu). mon souci c’est que les valeurs obtenues sont trés minimes. donc tout à l’heure j’enverai le code et le montage pour que vous puissiez donner vos avis.

voila ce que j’ai comme code pour le moment.
float zero_senseur;
int PIN_ACS712 = A0;
// Obtient la valeur du senseur de courant ACS712
//
// Effectue plusieurs lecture et calcule la moyenne pour pondérer
// la valeur obtenue.
float valeurACS712( int pin ){
int valeur;
float moyenne = 0;
int nbr_lectures = 50;
for( int i = 0; i < nbr_lectures; i++ ){
valeur = analogRead( pin );
moyenne = moyenne + float(valeur);
}
moyenne = moyenne / float(nbr_lectures);
return moyenne;
}
#include <LiquidCrystal.h>
#include <EEPROM.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
float courant;
float courant_efficace;
float tension_efficace ; // tension efficace du réseau electrique
float puissance_efficace;
float ACS712_RAPPORT = 100; // nbr de millivolts par ampère
// set up the LCD’s number of columns and rows:
float Eng;
float Eng1 = 0;
float Eng2;
float temps;

void setup(){
// calibration du senseur (SANS COURANT)
zero_senseur = valeurACS712( PIN_ACS712 );
Serial.begin( 9600 );
}
void loop(){

for ( temps == 0; temps<1000000; temps++ ){
float valeur_senseur = valeurACS712( PIN_ACS712 );
// L’amplitude en courant est ici retournée en mA
// plus confortable pour les calculs
courant = (float)(valeur_senseur-zero_senseur)/10245/ACS712_RAPPORT100000;
// Courant efficace en mA
courant_efficace = courant / 1.414; // divisé par racine de 2
// Calcul de la puissance.
// On divise par 1000 pour transformer les mA en Ampère
tension_efficace = (0.066courant_efficace/0.001)/1000;
puissance_efficace = (courant_efficace * tension_efficace);
Serial.println( “zero_senseur - lecture - courant efficace (mA) - Puissance (W) - courant(A)” );
Serial.print( zero_senseur );
Serial.print( " - " );
Serial.print( valeur_senseur );
Serial.print( " - " );
Serial.print( courant_efficace );
Serial.print( "mA - " );
Serial.print( puissance_efficace );
Serial.println( " W - " );
Serial.print( courant );
Serial.print(“mA”);
delay( 1000 ); // attendre une seconde
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.setCursor(0,0);
lcd.print(“I:”);
lcd.print( courant_efficace );
lcd.print(“mA”);
lcd.setCursor(0,1);
lcd.print(“P:”);
lcd.print( puissance_efficace/1000 );
lcd.print(“mW”);
// print the number of seconds since reset:
lcd.setCursor(10,0);
lcd.print(“U:”);
lcd.print( tension_efficace );
lcd.print(“V”);
Eng2 = puissance_efficace
millis()/1000/3600;
Eng = Eng1 + Eng2;
lcd.setCursor(8,1);
lcd.print(“E:”);
lcd.print(Eng);
lcd.print(“mWh”);
Eng1 = Eng;
delay(1000);

}

}