le code arduino :
long portPotentiometre = A0; long valeurPotentiometre; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } // boucle d'allumage void loop() { valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(10, HIGH); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(11, HIGH); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(12, HIGH); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(13, HIGH); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(14, HIGH); delay(valeurPotentiometre); // boucle d'arret digitalWrite(10, LOW); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(11, LOW); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(12, LOW); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(13, LOW); delay(valeurPotentiometre); valeurPotentiometre = analogRead(A0); delay(1); digitalWrite(14, LOW); delay(valeurPotentiometre); } }
Ceci est un code pour l'Arduino permettant de faire clignoter deux leds à des fréquences différentes sans l'utilisation de la fonction delay()
// on déclare les périodes des deux leds float period1 = 1000; // un clignotement par seconde float period2 = 1000/3.0; // un clignotement par tiers de seconde void setup() { // on utilise les sorties 9 et 10 pour les leds pinMode(9, OUTPUT); pinMode(10, OUTPUT); } void loop() { long t = millis(); // la fonction getStateAtTimeWithPeriod() retourne l'état que doit prendre la led au temps t // et à la période donnée. digitalWrite(9, getStateAtTimeWithPeriod(t, period1)); digitalWrite(10, getStateAtTimeWithPeriod(t, period2)); } boolean getStateAtTimeWithPeriod(long t, float period) { boolean onOrOff = ((int)(t / period)) % 2; return onOrOff; }
realiser sa propre peinture conductrice
Attiny et Charlieplexingavec 6 leds
Un exemple de programme
#define LED_1 0 // Pin 0 de l'attiny85 , broche 5 arduino Uno #define LED_2 1 // Pin 1 de l'attiny85 , broche 6 arduino Uno #define LED_3 2 // Pin 2 de l'attiny85 , broche 7 arduino Uno void setup() { pinMode(LED_1, INPUT); pinMode(LED_2, INPUT); pinMode(LED_3, INPUT); } void loop() { set_pins(LED_1, LED_2); delay(100); set_pins(LED_2, LED_1); delay(100); set_pins(LED_3, LED_1); delay(100); set_pins(LED_1, LED_3); delay(100); set_pins(LED_2, LED_3); delay(100); set_pins(LED_3, LED_2); delay(100); } void set_pins(int high_pin, int low_pin) { reset_pins(); pinMode(high_pin, OUTPUT); pinMode(low_pin, OUTPUT); digitalWrite(high_pin, HIGH); digitalWrite(low_pin,LOW); } void reset_pins() { pinMode(LED_1, INPUT); pinMode(LED_2, INPUT); pinMode(LED_3, INPUT); digitalWrite(LED_1, LOW); digitalWrite(LED_2, LOW); digitalWrite(LED_3, LOW); }
Etoile pour un arduino Uno sans charliePlexing
Code pour un arduino Uno sans charliePlexing
// ce programme allulme les leds une par une int pin[6]={3,4,5,6,7,8}; int temp0=200; //tempo pour allumer les leds int temp1=100; // tempo pour eteindre void setup(){ for (int i = 0 ; i<=5 ; i++){ pinMode(pin[i], OUTPUT); } } void loop(){ for (int i = 0 ; i<=5 ; i++){ // boucle for pour allumer les leds une par une digitalWrite(pin[i], HIGH); delay(temp0); } for (int i = 5 ; i>=0 ; i--){ digitalWrite(pin[i], LOW); delay(temp1); } }
A suivre …