Phares d’iroise

Marc et Jean-Yves ont réaliser des modélisations de phares :
Le four, le Stiff, le Créach, la Jument et Kermorvan sont réalisés.
Ces modélisations 3D doivent clignoter selon leur signature lumineuse,
par ex le Four possède 5 éclats toutes les 15s.

Ainsi, conformément à notre devise, CONCEVOIR – MODÉLISER – FABRIQUER
voici les différentes étapes de ce projet en images :

Vue du fichier stl du phare du Four réalisé avec un logiciel de conception 3D avant son export Gcode
pour l’impression 3D
Programmation de l’Attiny 85 à l’aide de la carte Arduino Uno en mode ISP
//Programme clignotements led en fonction de la valeur analogique
//d'un pont diviseur. © Fablab Iroise

#include "tinysnore.h" // Include TinySnore Library

#define pinLed 0
#define RPin A1

int RValue = 0;

void setup() {
  // put your setup code here, to run once:

  pinMode(pinLed, OUTPUT);
  RValue = analogRead(RPin);


}
void loop() {

  if (RValue < 100) { // Four 5 eclats /15s

    digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
        digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
        digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
        digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
        digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(10000);//delay(2000);
  }
  if (RValue > 100 && RValue < 200) { // St-Mathieu 1 eclats /15s
         digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(14500);//delay(2000);
  }
   if (RValue > 200 && RValue < 300) { // Ile Vierge/Kermorvan 1 eclats /5s Pierres noire idem Rouge
         digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(4500);//delay(2000);
  }
   if (RValue > 300 && RValue < 400) { // Le Créach 2 eclats /10s Pierres noire idem Rouge
          digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
         digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(8500);//delay(2000);
  }
  if (RValue > 500 && RValue < 600) { // Le Stiff 2 eclats /20s  Rouge
          digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
         digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(18500);//delay(2000);
  }
   if (RValue > 700 && RValue < 800) { // Nividic 9 scintillements /10s  Blanc
          digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
           digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(250);//delay(2000);
         digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(5000);//delay(2000);
  }
  if (RValue > 800 && RValue < 900) { // La Jument 3 eclats /15s  Blanc
          digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
    digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(1000);//delay(2000);
         digitalWrite(pinLed, HIGH);   // turn the LED on (HIGH is the voltage level)
    snore(250);                       // wait for a half second
    digitalWrite(pinLed, LOW);    // turn the LED off by making the voltage LOW
    snore(12
    500);//delay(2000);
  }
}
Test du montage sur breadboard : alimentation 3V led + résistance 10Ω, 2 résistances 100 kΩ et 10 kΩ pour le pont diviseur.
Utilisation de la bibliothèque tinysnore pour n’activer la consommation que lors des flashs lumineux
Recherche des valeurs de ponts diviseurs avec les valeurs de résistance disponibles
Conception sur Kicad du circuit
Vue du circuit
Réception des circuits imprimés fabriqués
Montage des composants soudés, la pile est au verso et restera accessible sous le phare