Bonjour à tous !
Depuis quelques semaines, je possède un Arduino UNO Rev3.
J'ai fais quelques réalisations diverses avec, et dernièrement, je m'en suis servi plus particulièrement pour un projet scolaire.
Alors que je testais différentes modifications apportées au programme, d'un coup, en voulant le recharger, j'ai commencé à avoir l'erreur suivante :
avrdude: stk500_getsync(): not in sync: resp=0x00.
Après quelques recherches sur le net, j'ai testé plein de manipulations : changement de PC, ré-installation des pilotes, changement de port COM, changement de câble USB, etc...
J'ai lu que ceci pouvait être dû au fait que l'ATMEGA ai pu cramer. Cependant, il continue d'exécuter le programme (l'Arduino contrôle entre autre avec un plateau tournant, et un bouton-poussoir, il effectue bien le programme normal).
La connexion USB fonctionne, puisque le PC reconnait bien si l'Arduino est connecté ou non.
Je vous envoi en fin de message le dernier code uploadé sur l'Arduino, et donc qui tourne en ce moment dessus...
Merci d'avance pour vos réponses !
#include <Stepper.h>
const int stepsPerRevolution = 100; // change this to fit the number of steps per revolution
int rotation = 0;
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 4,5,6,7);
void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT); // ECLAIRAGE VOITURE -> Interface Puissance !
pinMode(4, OUTPUT); // MOTEUR PAP -> Interface Puissance
pinMode(5, OUTPUT); // MOTEUR PAP -> Interface Puissance
pinMode(6, OUTPUT); // MOTEUR PAP -> Interface Puissance
pinMode(7, OUTPUT); // MOTEUR PAP -> Interface Puissance
pinMode(8, INPUT); // BOUTON UTILISATEUR
pinMode(9, OUTPUT); // LED BOUTON UTILISATEUR
myStepper.setSpeed(100);
}
void loop() {
int sens = 0;
digitalWrite(3, LOW); // ECLAIRAGE CAVITE OFF
digitalWrite(9, LOW); // LED BOUTON UTILISATEUR OFF
//INCREMENTE
rotation = 0;
while(rotation < 15)
{
myStepper.step(stepsPerRevolution);
rotation++;
}
sens = 1;
delay(1000);
int boucle = 0;
while(boucle == 0)
{
digitalWrite(3, HIGH); // ECLAIRAGE CAVITE ON
digitalWrite(9, HIGH); // LED BOUTON UTILISATEUR ON
int temps_boucle = 0;
int signal = LOW;
while (temps_boucle < 50)
{
signal = digitalRead(8);
if (signal == HIGH)
{
digitalWrite(3, LOW); // ECLAIRAGE CAVITE OFF
digitalWrite(9, LOW); // LED BOUTON UTILISATEUR OFF
if (sens == 1) // REMISE A NIVEAU
{
//DECREMENTE
int rotation = 0;
while(rotation < 10)
{
myStepper.step(-stepsPerRevolution);
rotation++;
}
sens = 0;
}
delay(1000);
Serial.print('Z'); // ENVOI SIGNAL PC
digitalWrite(3, HIGH); // ECLAIRAGE CAVITE ON
delay(5000); // VIDEO - PARTIE HISTORIQUE
digitalWrite(3, LOW); // ECLAIRAGE CAVITE OFF
//INCREMENTE
rotation = 0;
while(rotation < 10)
{
myStepper.step(stepsPerRevolution);
rotation++;
}
digitalWrite(3, HIGH); // ECLAIRAGE CAVITE ON
sens = 1;
delay(5000); // VIDEO - PARTIE EF1
// PRISE PHOTOS ET IMPRESSION
int reprise = 0;
while (reprise != 'A')
{
while (Serial.available() == 0)
{
}
reprise = Serial.read(); // lit le 1er octet arrivé
}
digitalWrite(9, HIGH); // LED BOUTON UTILISATEUR ON
int compteur = 0;
signal = LOW;
while (compteur < 250 && signal == LOW)
{
signal = digitalRead(8);
compteur++;
delay(20);
}
digitalWrite(9, LOW); // LED BOUTON UTILISATEUR OFF
if (signal == HIGH)
{
// Utilisateur veut prendre la photo
Serial.print('Z'); // ENVOI SIGNAL PC
// PRISE PHOTO & ATTENTE RECEPTION SIGNAL
reprise = 0;
while (reprise != 'A')
{
while (Serial.available() == 0)
{
}
reprise = Serial.read(); // lit le 1er octet arrivé
}
digitalWrite(9, HIGH); // LED BOUTON UTILISATEUR ON
compteur = 0;
signal = LOW;
while (compteur < 250 && signal == LOW)
{
signal = digitalRead(8);
compteur++;
delay(20);
}
digitalWrite(9, LOW); // LED BOUTON UTILISATEUR OFF
digitalWrite(9, LOW); // LED BOUTON UTILISATEUR OFF
if (signal == HIGH)
{
// Utilisateur veut imprimer sa photo
Serial.print('Z'); // ENVOI SIGNAL PC
reprise = 0;
while (reprise != 'A')
{
while (Serial.available() == 0)
{
}
reprise = Serial.read(); // lit le 1er octet arrivé
}
}
}
}
else
{
temps_boucle++;
delay(100);
}
}
digitalWrite(3, LOW); // ECLAIRAGE CAVITE OFF
digitalWrite(9, LOW); // LED BOUTON UTILISATEUR OFF
temps_boucle = 0;
if (sens == 1)
{
//DECREMENTE
int rotation = 0;
while(rotation < 8)
{
myStepper.step(-stepsPerRevolution);
rotation++;
}
delay(5000);
sens = 0;
}
else
{
//INCREMENTE
rotation = 0;
while(rotation < 9)
{
myStepper.step(stepsPerRevolution);
rotation++;
}
sens = 1;
delay(5000);
}
}
}