Bonjour bonjour,
Voilas j'ai essayé mon code avec différents compteurs, avec un seul, avec aussi une intervale. Mais ça ne change rien. J'ai essayé de comprendre en lisant les réponses sur internet, sur Arduino, et avec diverses recherches et l'exemple BlinkWithoutDelay. Sans parvenir à ce que je veux. Étant totalement débutant, comment arrivé à faire que mon programme execute mes instructions ligne après ligne comme avec l'option delay.
Voici le dernier code sur lequel je me suis arreté. il compile mais le resultat de mon animation est la même et ne prend pas en compte le delay imposé. Le même sketch, sans les IF et avec Delay fonctionne comme je veux. Je sais que je ne comprend pas plein de chose. Si vous pouvez m'aider avec seulement le même exemple mais avec 2 instructions dans la boucle loop. Ce serai super. En même temps ça permetterai à d'autres débutants de comprendre. J'ai peut être pas compris les principes mais soyez indulgent. Merci de votre aide.
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
Adafruit_PCD8544 display = Adafruit_PCD8544(8, 7, 6, 5, 4);
#include <Arduino.h>
#include <Wire.h>
unsigned long currentMillis =0;
unsigned long previousMillis1=0;
unsigned long previousMillis2=0;
unsigned long previousMillis3=0;
unsigned long previousMillis4=0;
unsigned long previousMillis5=0;
unsigned long previousMillis6=0;
unsigned long previousMillis7=0;
unsigned long previousMillis8=0;
unsigned long previousMillis9=0;
unsigned long previousMillis10=0;
unsigned long previousMillis11=0;
unsigned long previousMillis12=0;
unsigned long previousMillis13=0;
unsigned long previousMillis14=0;
unsigned long previousMillis15=0;
unsigned long previousMillis16=0;
unsigned long previousMillis17=0;
unsigned long previousMillis18=0;
unsigned long previousMillis19=0;
unsigned long previousMillis20=0;
unsigned long previousMillis21=0;
unsigned long previousMillis22=0;
unsigned long previousMillis23=0;
unsigned long previousMillis24=0;
unsigned long previousMillis25=0;
unsigned long previousMillis26=0;
unsigned long previousMillis27=0;
unsigned long previousMillis28=0;
unsigned long previousMillis29=0;
unsigned long previousMillis30=0;
unsigned long previousMillis31=0;
void setup() {
display.begin();
display.setContrast(55);
display.clearDisplay(); // clears the screen and buffer
}
void loop() {
unsigned long currentMillis = millis();
if((unsigned long)(currentMillis - previousMillis1) >= 100) {
display.drawLine(42, 10, 42, 0, BLACK);
display.display();
previousMillis1 = millis;
}
if((unsigned long)(currentMillis - previousMillis1) >= 100) {
display.drawLine(42, 10, 47, 0, BLACK);
display.display();
previousMillis2 = previousMillis1;
}
if((unsigned long)(currentMillis - previousMillis2) >= 100) {
display.drawLine(42, 10,52 ,0 , BLACK);
display.display();
previousMillis3 = previousMillis2;
}
if((unsigned long)(currentMillis - previousMillis3) >= 100) {
display.drawLine(42, 10, 52, 5, BLACK);
display.display();
previousMillis4 = previousMillis3;
}
if((unsigned long)(currentMillis - previousMillis4) >= 100) {
display.drawLine(42, 10,52 ,10 , BLACK);
display.display();
previousMillis5 = previousMillis4;
}
if((unsigned long)(currentMillis - previousMillis5) >= 100) {
display.drawLine(42, 10, 52, 15, BLACK);
display.display();
previousMillis6 = previousMillis5;
}
if((unsigned long)(currentMillis - previousMillis6) >= 100) {
display.drawLine(42, 10,52 ,20 , BLACK);
display.display();
previousMillis7 = previousMillis6;
}
if((unsigned long)(currentMillis - previousMillis7) >= 100) {
display.drawLine(42, 10,47 ,20 , BLACK);
display.display();
previousMillis8 = previousMillis7;
}
if((unsigned long)(currentMillis - previousMillis8) >= 100) {
display.drawLine(42, 10, 42, 20, BLACK);
display.display();
previousMillis9 = previousMillis8;
}
if((unsigned long)(currentMillis - previousMillis9) >= 100) {
display.drawLine(42, 10,37 ,20 , BLACK);
display.display();
previousMillis10 = previousMillis9;
}
if((unsigned long)(currentMillis - previousMillis10) >= 100) {
display.drawLine(42, 10, 32, 20, BLACK);
display.display();
previousMillis11 = previousMillis10;
}
if((unsigned long)(currentMillis - previousMillis11) >= 100) {
display.drawLine(42, 10,32 ,15 , BLACK);
display.display();
previousMillis12 = previousMillis11;
}
if((unsigned long)(currentMillis - previousMillis12) >= 100) {
display.drawLine(42, 10,32 ,10 , BLACK);
display.display();
previousMillis13 = previousMillis12;
}
if((unsigned long)(currentMillis - previousMillis13) >= 100) {
display.drawLine(42, 10,32 ,5 , BLACK);
display.display();
previousMillis14 = previousMillis13;
}
if((unsigned long)(currentMillis - previousMillis14) >= 100) {
display.drawLine(42, 10,32 ,0 , BLACK);
display.display();
previousMillis15 = previousMillis14;
}
if((unsigned long)(currentMillis - previousMillis15) >= 100) {
display.drawLine(42, 10,37 ,0 , BLACK);
display.display();
previousMillis16 = previousMillis15;
}
if((unsigned long)(currentMillis - previousMillis16) >= 100) {
//Reverse
display.drawLine(42, 10, 42, 0, WHITE);
display.display();
previousMillis17 = previousMillis16;
}
if((unsigned long)(currentMillis - previousMillis17) >= 100) {
display.drawLine(42, 10, 47, 0, WHITE);
display.display();
previousMillis18 = previousMillis17;
}
if((unsigned long)(currentMillis - previousMillis18) >= 100) {
display.drawLine(42, 10,52 ,0 , WHITE);
display.display();
previousMillis19 = previousMillis18;
}
if((unsigned long)(currentMillis - previousMillis19) >= 100) {
display.drawLine(42, 10, 52, 5, WHITE);
display.display();
previousMillis20 = previousMillis19;
}
if((unsigned long)(currentMillis - previousMillis20) >= 100) {
display.drawLine(42, 10,52 ,10 , WHITE);
display.display();
previousMillis21 = previousMillis20;
}
if((unsigned long)(currentMillis - previousMillis21) >= 100) {
display.drawLine(42, 10, 52, 15, WHITE);
display.display();
previousMillis22 = previousMillis21;
}
if((unsigned long)(currentMillis - previousMillis22) >= 100) {
display.drawLine(42, 10,52 ,20 , WHITE);
display.display();
previousMillis23 = previousMillis22;
}
if((unsigned long)(currentMillis - previousMillis23) >= 100) {
display.drawLine(42, 10,47 ,20 , WHITE);
display.display();
previousMillis24 = previousMillis23;
}
if((unsigned long)(currentMillis - previousMillis24) >= 100) {
display.drawLine(42, 10, 42, 20, WHITE);
display.display();
previousMillis25 = previousMillis24;
}
if((unsigned long)(currentMillis - previousMillis25) >= 100) {
display.drawLine(42, 10,37 ,20 , WHITE);
display.display();
previousMillis25 = previousMillis26;
}
if((unsigned long)(currentMillis - previousMillis26) >= 100) {
display.drawLine(42, 10, 32, 20, WHITE);
display.display();
previousMillis26 = previousMillis27;
}
if((unsigned long)(currentMillis - previousMillis27) >= 100) {
display.drawLine(42, 10,32 ,15 , WHITE);
display.display();
previousMillis27 = previousMillis28;
}
if((unsigned long)(currentMillis - previousMillis28) >= 100) {
display.drawLine(42, 10,32 ,10 , WHITE);
display.display();
previousMillis28 = previousMillis29;
}
if((unsigned long)(currentMillis - previousMillis29) >= 100) {
display.drawLine(42, 10,32 ,5 , WHITE);
display.display();
previousMillis29 = previousMillis30;
}
if((unsigned long)(currentMillis - previousMillis30) >= 100) {
display.drawLine(42, 10,32 ,0 , WHITE);
display.display();
previousMillis30 = previousMillis31;
}
if((unsigned long)(currentMillis - previousMillis31) >= 100) {
display.drawLine(42, 10,37 ,0 , WHITE);
display.display();
previousMillis1 = millis;
}
}