|
| Block System Arduino | |
| | |
Auteur | Message |
---|
thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Lun 14 Déc 2020 - 19:19 | |
| |
| | | thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Mer 16 Déc 2020 - 18:52 | |
| Et voilà, 2 ATtiny85, 2 feux!! |
| | | Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2352 Date d'inscription : 15/11/2019
| Sujet: Re: Block System Arduino Mer 16 Déc 2020 - 19:19 | |
| Je suis bien contient que ça te convienne! |
| | | thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Mer 16 Déc 2020 - 22:07 | |
| |
| | | mistigris Membre
Age : 56 Localisation : Maisons Alfort Nombre de messages : 473 Date d'inscription : 11/04/2012
| Sujet: Re: Block System Arduino Ven 18 Déc 2020 - 22:11 | |
| … les ATtiny85 sont "merveilleux" ! pas de place et pleins de possibilités !… je les utilise dans le kiosque d'un sous marin radiocommandé pour animer les feus et pilotage de divers micro servo… (pas de place et simple d'utilisation)… en N on peut les utiliser sur des vehicules (Grue sur rail, allumage aleatoire dans une rame etc…)… ravis que vous utilisiez ceux ci… pour compléter l'info la dessus y a (dans le maquetisme naval) qui a bien exploré le truc et un site que j'adore : http://bateaux.trucs.free.fr/ageneral.html… On trouve beaucoup de chose même des telecommandes 16 voix à faire, arduino etc… juste à l'appliquer au N… bonne chance pour la suite ! |
| | | Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2352 Date d'inscription : 15/11/2019
| Sujet: Re: Block System Arduino Ven 18 Déc 2020 - 22:53 | |
| @mistigri Je connais ce site et je le recommande également |
| | | thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Jeu 1 Juil 2021 - 18:43 | |
| Hello! Je reprends un peu le sujet, car je souhaite supprimer le delay du feu orange pour le remplacer par un signal infrarouge comme celui qui déclenche le feu rouge. Le 1er probleme dont je me rend compte, est que le P5 de mon ATtiny85 Digispark sert de reset, y a t il la possibilité de supprimer cette fonctionnalité? |
| | | Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2352 Date d'inscription : 15/11/2019
| Sujet: Re: Block System Arduino Jeu 1 Juil 2021 - 20:49 | |
| Je n'utilise pas de Digispark mais uniquement des ATtiny85 classiques. Toutefois, pour ne pas te laisser en plan j'ai fais une petite recherche sur le net... Va sur ce lien, en bas de page, à priori une astuce serait possible. Essaye et dis nous le résultat... Désolé de ne pouvoir t'aider d'avantage |
| | | Yves07 Membre
Age : 78 Localisation : Ardeche Nombre de messages : 175 Date d'inscription : 18/04/2020
| Sujet: Re: Block System Arduino Ven 2 Juil 2021 - 7:47 | |
| - thomaswf a écrit:
- Hello!
Je reprends un peu le sujet, car je souhaite supprimer le delay du feu orange pour le remplacer par un signal infrarouge comme celui qui déclenche le feu rouge. Le 1er probleme dont je me rend compte, est que le P5 de mon ATtiny85 Digispark sert de reset, y a t il la possibilité de supprimer cette fonctionnalité? Salut, Pour supprimer le RESET par P5, il faut "bruler" un fusible interne (RSTDISBL) et après on ne peut plus reprogrammer le chip sauf à disposer d'un programmateur "haute tension". En fouillant sur le net j'ai trouvé un truc, je me cite moi même: (Voir dans le sujet BALA2BAL) *********** Salut, Pas de nouvelle fonctionnalité aujourd'hui mais en fouillant j'ai trouvé ça: https://www.hackster.io/sbinder/attiny85-powered-high-voltage-avr-programmer-3324e1#codeC'est pour arduino et aprés installation de l'IDE il faut encore ajouter un truc: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.jsondans la zone "URL de gestionnaire de cartes supplémentaires". On peut alors choisir le processeur (ATtiny45 pour moi) dans le menu OUTIL / Processeur de l'IDE et exporter le "binaire" (fichier avec extension .hex) depuis le menu Croquis et enfin le graver avec avrdude et le programmeur usbasp (Ouffff !!!!!). Sans avoir besoin d'une carte arduino Ca m'a pris le journée pour comprendre mais maintenant je peux brûler et rétablir ce P... de fusible RSTDISBL Il y a peut être une méthode plus simple ? Mais si ça peut servir . . . ************ |
| | | thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Ven 2 Juil 2021 - 11:55 | |
| Merci pour vos réponses! Je ne suis pas sur d'avoir tout compris, mais il semblerait que l'on puisse shunter cette fonctionnalité a l'aide d'un bouton tactile, que je n'ai pas ou en dessoudant un fusible mais qui risque d'alterer le fonctionnement de la carte...
J'en suis a me demander, est ce que le digispark est vraiment adapté, est qu'il ne serait pas plus simple de passer mon system sur un autre type de cartes comme un Arduino Nano, ou un Arduino Micro?
|
| | | Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2352 Date d'inscription : 15/11/2019
| Sujet: Re: Block System Arduino Ven 2 Juil 2021 - 22:56 | |
| - Yves07 a écrit:
- ...
https://www.hackster.io/sbinder/attiny85-powered-high-voltage-avr-programmer-3324e1#code ... J'ai assemblé en dur le resetter pour mes ATtinys accessible par ce lien, mais à ce jour je n'ai même pas encore vérifié son bon fonctionnement! @thomaswf Mon expérience personnelle: Pour mes montages je passe systématiquement par un Nano qui est à demeure posé sur un shield d'extension. Ce qui me permet de connecter facilement les différentes pins avec des câbles Dupont. Les liaisons avec une breadboard ou mes autres petits modules sont ainsi aisées. Point non négligeable les pattes du Nano sont protégées physiquement et électriquement. Je ne sais si un shield d'extension existe pour le Micro raison pour laquelle j'ai choisi le Nano. Comme tu le comprendra je suis plus dans la phase d'expérimentation que dans le montage à installer définitivement sous un réseau. Mes seuls montages définitifs ont été surtout des animations d'éclairage à base d'ATtiny85 insérés dans des bâtiments. A toi de voir |
| | | thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Mar 6 Juil 2021 - 18:19 | |
| Hellow! Bon, j'ai enfin peu passer au Nanos... Et j'ai quelques soucis avec le code pour le passage du orange au vert en enlevant le delay...
voici ce que j'ai: int sensePin1=A0; int sensePin2=A1; int sensePin3=A2; int RED=6; int YELLOW=5; int GREEN=3; int POWER=8;
void setup() { Serial.begin(9600); pinMode(RED,OUTPUT); pinMode(YELLOW,OUTPUT); pinMode(GREEN,OUTPUT); pinMode(POWER,OUTPUT);
} enum SIGNALSTATES { ST_GREEN, ST_RED1, ST_RED2, ST_YELLOW, }; SIGNALSTATES signalState=ST_GREEN;
void loop() { int valA1=analogRead(sensePin1); int valA2=analogRead(sensePin2); int valA3=analogRead(sensePin3); Serial.println(valA1); Serial.println(valA2); Serial.println(valA3); delay(200);
switch(signalState) { case ST_GREEN: signalgreen(valA1, valA2); break; case ST_RED1: signalred1(valA1, valA2); break; case ST_RED2: signalred2(valA1, valA2); break; case ST_YELLOW: signalyellow(valA2, valA3); break; } }
void signalgreen(int valA1, int valA2){ digitalWrite(GREEN,LOW); digitalWrite(RED,HIGH); digitalWrite(YELLOW,HIGH); digitalWrite(POWER,HIGH);
if (valA1<500 && valA2>500){ signalState=ST_RED1; } else if (valA1>500 && valA2<500){ signalState=ST_RED2; } }
void signalred1(int valA1, int valA2){ digitalWrite(GREEN,HIGH); digitalWrite(RED,LOW); digitalWrite(YELLOW,HIGH); digitalWrite(POWER,HIGH);
if (valA1>500 && valA2<500){ signalState=ST_YELLOW; } }
void signalred2(int valA1, int valA2){ digitalWrite(GREEN,HIGH); digitalWrite(RED,LOW); digitalWrite(YELLOW,HIGH); digitalWrite(POWER,HIGH);
if (valA1<500 && valA2>500){ signalState=ST_YELLOW; } }
void signalyellow(int valA2, int valA3){ digitalWrite(GREEN,HIGH); digitalWrite(RED,HIGH); digitalWrite(YELLOW,LOW); digitalWrite(POWER,HIGH);
if (valA2>500 && valA3>500){ signalState=ST_GREEN; } } |
| | | Fantasio Membre
Age : 64 Localisation : Saint Médard en Jalles (33) Nombre de messages : 2352 Date d'inscription : 15/11/2019
| Sujet: Re: Block System Arduino Mer 7 Juil 2021 - 17:31 | |
| Bonjour thomaswf En première approche je pense que ton problème est dans la fonction voidsignalyellow, car pour passer du jaune au vert tu dois continuer à prendre en compte l'état du capteur1 branché en A0. Il en est de même pour l'appel de cette fonction "signalyellow(valA1, valA2, valA3)". Voilà pour les explications. Je te retourne le code modifié et comme tu utilises un Nano tu verras également sur le moniteur série les différents états: - Code:
-
const int sensePin1 = A0; const int sensePin2 = A1; const int sensePin3 = A2; const int RED = 6; const int YELLOW = 5; const int GREEN = 3; const int POWER = 8;
void setup() { Serial.begin(9600); pinMode(RED, OUTPUT); pinMode(YELLOW, OUTPUT); pinMode(GREEN, OUTPUT); pinMode(POWER, OUTPUT); }
enum SIGNALSTATES {ST_GREEN, ST_RED1, ST_RED2, ST_YELLOW,}; SIGNALSTATES signalState = ST_GREEN;
void loop() { int valA1 = analogRead(sensePin1); int valA2 = analogRead(sensePin2); int valA3 = analogRead(sensePin3); Serial.print("valA1 = ");Serial.println(valA1); Serial.print("valA2 = ");Serial.println(valA2); Serial.print("valA3 = ");Serial.println(valA3); delay(200);
switch (signalState) { case ST_GREEN: signalgreen(valA1, valA2); break; case ST_RED1: signalred1(valA1, valA2); break; case ST_RED2: signalred2(valA1, valA2); break; case ST_YELLOW: signalyellow(valA1, valA2, valA3); break; } }
void signalgreen(int valA1, int valA2) { digitalWrite(GREEN, LOW); digitalWrite(RED, HIGH); digitalWrite(YELLOW, HIGH); digitalWrite(POWER, HIGH); Serial.println("feu vert allumé"); if (valA1 < 500 && valA2 > 500) { signalState = ST_RED1; } else if (valA1 > 500 && valA2 < 500) { signalState = ST_RED2; } }
void signalred1(int valA1, int valA2) { digitalWrite(GREEN, HIGH); digitalWrite(RED, LOW); digitalWrite(YELLOW, HIGH); digitalWrite(POWER, HIGH); Serial.println("feu rouge allumé");
if (valA1 > 500 && valA2 < 500) { signalState = ST_YELLOW; } }
void signalred2(int valA1, int valA2) { digitalWrite(GREEN, HIGH); digitalWrite(RED, LOW); digitalWrite(YELLOW, HIGH); digitalWrite(POWER, HIGH); Serial.println("feu rouge allumé"); if (valA1 < 500 && valA2 > 500) { signalState = ST_YELLOW; } }
void signalyellow(int valA1, int valA2, int valA3) { digitalWrite(GREEN, HIGH); digitalWrite(RED, HIGH); digitalWrite(YELLOW, LOW); digitalWrite(POWER, HIGH); Serial.println("feu orange allumé"); if (valA1 > 500 && valA2 > 500 && valA3 > 500) { signalState = ST_GREEN; } } En espérant que tout fonctionnera comme tu le souhaites. |
| | | thomaswf Membre
Age : 32 Localisation : Amiens Nombre de messages : 763 Date d'inscription : 20/03/2011
| Sujet: Re: Block System Arduino Mer 7 Juil 2021 - 19:49 | |
| Ah oui, en effet, je comprends mieux ! Je testerai ça la prochaine fois Merci en tout cas! |
| | | Contenu sponsorisé
| Sujet: Re: Block System Arduino | |
| |
| | | | Block System Arduino | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |