Bonjour, mon idée dans ce code,c'est de faire en sorte que l'écran défile de "Vitesse" à la caractéristique suivante toutes les 5 secondes,puis que de la caractéristique suivante etc.
Mais quand je le transfère à l'arduino,il revient toujours à vitesse,et rien d'autre...comment faire?
PS: Si le fait que je ne mette qu'une lettre par ligne vous intrigue,c'est parce que Sinon,l'écran transforme ça en chiffres,donc j'utilise cette petite astuce
/*
* Programme qui servait avant de benchmark de piles LR6, AAA, CR2032 ou tout autre piles inférieur à 5v
*/
///variable useless d'un bout de code pecho sur google
volatile byte half_revolutions = 0;
unsigned int rpm = 0;
unsigned int timeold = 0;
void rpm_fun()
{
half_revolutions++;
//Each rotation, this interrupt function is run twice
}
/* Valeur de la résistance de charge */
const float charge_resistor = 15.2;
/* Inclure les bibli */
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
/* Broche de mesure */
const byte analog_pin = A0;
/* Macro de conversion valeur numérique -> tension en volts */
#define ADC_TO_VOLTS(value) ((value / 1023.0) * 5.0)
/* setup() */
void setup() {
/* Initialise le lcd */
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0,0);
}
/* loop() */
void loop() {
/* Attend la mise en place d'un accu >1 volts */
while(analogRead(analog_pin) < 200);
/* Compteur de temps */
unsigned int time = 0;
/* Résultat de analogRead() */
unsigned int analog;
/* Mesure la batterie jusqu'a ce quelle atteigne 1 volts*/
while((analog = analogRead(analog_pin)) > 200) {
/* Mesure de la tension de la batterie (en volts) */
float vbat = ADC_TO_VOLTS(analog);
/* Calcul du courant traversant la résistance (en mA) */
float ibat = (vbat * 0.1) / charge_resistor; // I = U / R
/* Calcul de la puissance de la batterie (en mW) */
float pbat = vbat * ibat; // P = U * I
/* Affiche les résultats */
lcd.setCursor(1,0);
lcd.print('T');
lcd.print('e');
lcd.print('n');
lcd.print('s');
lcd.print('i');
lcd.print('o');
lcd.print('n');
lcd.print(':');
lcd.print(vbat);
lcd.print('V');
///kek amperage
lcd.setCursor(1, 1);
lcd.print('I');
lcd.print('n');
lcd.print('t');
lcd.print('e');
lcd.print('n');
lcd.print('s');
lcd.print('i');
lcd.print('t');
lcd.print('e');
lcd.print(':');
lcd.print(ibat);
lcd.print('A');
/* Incrémente le compteur de temps */
++time;
/* Attend une seconde */
delay(5000);
///lol la on efface l'écran pour afficher VITESSE
lcd.clear();
lcd.setCursor(1,0);
lcd.print('V');
lcd.print('i');
lcd.print('t');
lcd.print('e');
lcd.print('s');
lcd.print('s');
lcd.print('e');
{
if (half_revolutions >= 20) {
//Update RPM every 20 counts, increase this for better RPM resolution,
//decrease for faster update
rpm = 30*1000/(millis() - timeold)*half_revolutions;
timeold = millis();
half_revolutions = 0;
lcd.setCursor(1, 1);
lcd.print(rpm);
lcd.setCursor(1, 1);
lcd.print("tr");
delay(1000);
}
}
///lolUS la on affiche AUTONOMIE
delay(500);
lcd.clear();
lcd.setCursor(1,0);
lcd.print('A');
lcd.print('u');
lcd.print('t');
lcd.print('o');
lcd.print('n');
lcd.print('o');
lcd.print('m');
lcd.print('i');
lcd.print('e');
lcd.print(':');
}
}
Merci d'avance de vos réponses <3