Outils pour utilisateurs

Outils du site


start:arduino:etoile

Fabriquer une etoile avec un arduino

etoile exemple

La Video

Un exemple realiser par Jean-Philippe avec de la pate conductrice ( il faut laisser secher un certain temps …)

Etoile led Clignotante.jpg J.P.

Video Etoile Clignotante.mp4 J.P.

le code arduino :

etoile.ino
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); }
}

etoile exemple 2

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()

LEDS_clignotent.ino
// 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;
}

fichiers STL d'etoiles

Exemples avec Mblock pour 4 LEDs

Mblock et LEDs

Exemples avec Mblock pour 6 LEDs

Le même programme mais en utilisant une boucle

Avec une boucle FOR

Réalisations

realiser sa propre peinture conductrice

Attiny et Charlieplexingavec 6 leds

Un exemple de programme

Un_exemple_de_programme_Attiny_6LEDS_CharliePlexing.ino
#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

Lien IDE arduino en ligne

Uno-sans_charlieplexing.ino
// 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 …

start/arduino/etoile.txt · Dernière modification: 2018/09/22 17:11 par gerardadmin