Bonsoir,
voici les infos
si la résolution n'est pas terrible, me contacter avec un mail en MP pour avoir les images non réduites.
Le Schéma:

Une Vue 3D

Le PCB

L'Implantation:

Et enfin, le code:
Code : Tout sélectionner
// simulation balise cardinale avec choix du quadrant geographique par selection.
// Pour ATtiny85
// Cree 9 fevrier 2018 par Eric Pruvot
// utilisation et modification libre de droit pour usage prive, usage commercial: me consulter eric.pruvot@live.fr
int DelaiEclat = 250; // definition de la duree d'un eclat
int DelaiEclatLong = 1000; // definition de la duree d'un eclat long
int DelaiPause = 250; // definition de la duree de la pause apres l'eclat
int DelaiPauseMoy = 1250; // definition de la pause a la fin du cycle d'eclat
int DelaiPauseLong = 1750; // definition de la pause longue pour fin de cycle Est
int SortieLed = 0; // definie la pin 0 comme sortie Led
int InNord = 1; // definie la pin 1 pour choisir cardinale Nord
int InEst = 2; // definie la pin 2 pour choisir cardinale Est
int InSud = 3; // definie la pin 3 pour choisir cardinale Sud
int InOuest = 4; // definie la pin 4 pour choisir cardinale Ouest
void setup() {
pinMode(SortieLed, OUTPUT);
pinMode(InNord, INPUT_PULLUP);
pinMode(InEst, INPUT_PULLUP);
pinMode(InSud, INPUT_PULLUP);
pinMode(InOuest, INPUT_PULLUP);
}
// cette boucle tourne en permanence
void loop() {
if (digitalRead(InNord) == 0)
{
digitalWrite(SortieLed, HIGH); // 1 eclat
delay(DelaiEclat); // duree eclat
digitalWrite(SortieLed, LOW); // pause courte
delay(DelaiPause); // duree pause courte
}
else if(digitalRead(InEst) == 0)
{
for (int x = 1; x <= 3; ++x) { // 3 sintillements
digitalWrite(SortieLed, HIGH); // 1 eclat
delay(DelaiEclat); // duree eclat
digitalWrite(SortieLed, LOW); // pause courte
delay(DelaiPause); } // duree pause courte
delay(DelaiPauseLong); // duree pause fin de cycle
}
else if(digitalRead(InSud) == 0)
{
for (int y = 1; y <= 6; ++y) { // 6 sintillements
digitalWrite(SortieLed, HIGH); // 1 eclat
delay(DelaiEclat); // duree eclat
digitalWrite(SortieLed, LOW); // pause courte
delay(DelaiPause); } // duree pause courte
digitalWrite(SortieLed, HIGH); // 1 eclat long
delay(DelaiEclatLong); // duree eclat long
digitalWrite(SortieLed, LOW);
delay(DelaiPauseMoy); // duree pause fin de cycle
}
else if(digitalRead(InOuest) == 0)
{
for (int z = 1; z <= 9; ++z) { // 9 sintillements
digitalWrite(SortieLed, HIGH); // 1 eclat
delay(DelaiEclat); // duree eclat
digitalWrite(SortieLed, LOW); // pause courte
delay(DelaiPause); } // duree pause courte
delay(DelaiPauseMoy); // duree pause fin de cycle
}
else
{ digitalWrite(SortieLed, HIGH); // Si pas de position selectionnee envoi un "K" en code morse lumineux pour demander la configuration
delay(600); // Trait
digitalWrite(SortieLed, LOW);
delay(200);
digitalWrite(SortieLed, HIGH);
delay(200); // Point
digitalWrite(SortieLed, LOW);
delay(200);
digitalWrite(SortieLed, HIGH);
delay(600); // Trait
digitalWrite(SortieLed, LOW);
delay(600);
}
}
Voila Serge
si je peux aider, je ne passerai pas très souvent vu que ça n'est pas trop mon hobby, mais je ferai de mon mieux.
je pense qu'un MP déclenche un mail, les admins confirmeront.
bon amusement
cordialement
Eric