Démarrer en électronique programmable

Toutes les discussions sur l'Arduino !

Modérateur : MOD

Avatar du membre
tgvdu88
Papotier
Messages : 180
Enregistré le : sam. 25 oct. 2008, 17:45
Site Internet : https://www.facebook.com/tgvdu88/
Contact :

Re: Démarrer en électronique programmable

Message par tgvdu88 » dim. 28 févr. 2016, 21:34

Oui je refais ça demain, et j'essayerai pourquoi pas de faire une video.

Pour l'instant je vais continuer à travailler le PN.
D'abord en rajoutant les servo, pour finir le projet à une voie. Puis lorsque ça fonctionnera je le passerai en 2 voies ;)

Mais je suis intéresser par l'évolution de l'exercice à 3 feux. ça me serait utile pour mon réseau.
Je vais rajouter l'arrêt au feu rouge. J'ai vu que tu parlais d’arrêt progressif, je vais essayer de le mettre en place aussi. Tu pense qu'en digital ça peut marcher ou non?

Alain17
Démonstratif
Messages : 1439
Enregistré le : ven. 21 juil. 2006, 16:36
Localisation : Entre Cognac, Ré et Oléron

Re: Démarrer en électronique programmable

Message par Alain17 » dim. 28 févr. 2016, 22:02

...Il est déconseillé d'utiliser delay avec les interruptions, donc comme l'a dit jlb, on va utiliser le programme BlinkWithoutDelay (ou s'en inspirer)...
Dans ce cas de figure, vu le code contenu dans les fonctions d'interruptions, l'utilisation de la fonction delay() dans la boucle principale ne doit poser aucun problème.
La fonction loop() se réduirait alors simplement à :

Code : Tout sélectionner

void loop() {
  if (presence_train == true) {
    digitalWrite(led_rouge, HIGH);
    delay(interval);
    digitalWrite(led_rouge, LOW);
    delay(interval);  
  }
}
et le problème des feux qui peuvent rester allumés n'existe plus et la fonction interrupt_ILS1() se réduit à :

Code : Tout sélectionner

void interrupt_ILS1 () {
  presence_train = false;
}
Optimisons, optimisons ... :ange:

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » lun. 29 févr. 2016, 09:20

Cela devrait marcher ; je laisse tgvdu88 le tester lorsqu'il aura reconstitué sa maquette, la mienne étant montée pour autre chose...

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » mer. 02 mars 2016, 10:56

Alain17 a écrit :Dans ce cas de figure, vu le code contenu dans les fonctions d'interruptions, l'utilisation de la fonction delay() dans la boucle principale ne doit poser aucun problème.
Optimisons, optimisons ... :ange:
Bonjour Alain17,

Je te confirme, pour l'avoir essayé, que ta solution de gestion de PN en reprenant le programme Blink (avec Delay) fonctionne parfaitement.

Voici le programme pour ceux qui le veulent : :wink:

Code : Tout sélectionner

/*  Ce programme gere un PN a une seule voie parcourue dans un seul sens.
 *  Deux ILS, un en amont du PN, l autre en aval, provoquent des interruptions,
 *  ce qui modifie une variable indiquant la presence ou non d un train.
 *  La fonction loop est la copie de l exemple Blink
 */
 
const int ILS0 = 2; // ILS0 avant PN
const int ILS1 = 3; // ILS1 apres PN
const int led_rouge =  4;
volatile boolean presence_train = false;

// constants won't change :
const long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode (led_rouge, OUTPUT);
  pinMode (ILS0, INPUT_PULLUP);
  pinMode (ILS1, INPUT_PULLUP);
  attachInterrupt (0, interrupt_ILS0, LOW);
  attachInterrupt (1, interrupt_ILS1, LOW);
}

  void loop() {
  if (presence_train == true) {
    digitalWrite(led_rouge, HIGH);
    delay(interval);
    digitalWrite(led_rouge, LOW);
    delay(interval);  
  }
}



void interrupt_ILS0 () {
  presence_train = true;
}

void interrupt_ILS1 () {
  presence_train = false;
}




Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » sam. 05 mars 2016, 12:34

Nous avons commencé ce cours d'électronique programmable il y a deux mois. Ceux qui l'ont suivi et ont pratiqué en étudiant les montages et programmes proposés ont déjà à leur actif trois animations à inclure à leur réseau analogique (voir numérique) :
- une gare à deux voies
- des cantons avec signaux à deux ou trois feux
- un PN dont les feux clignotent à l'approche des trains

En deux mois, c'est tout de même pas mal, d'autant que ces "élèves" sont maintenant capables de comprendre les autres animations de réseaux que j'avais publiées sur le forum Arduino :
- feux tricolores de carrefour routier
- chenillard
- enseigne de commerçant
- fête foraine
- soudure à l'arc
Tout cela se trouve à cette adresse :
viewtopic.php?f=63&t=74953

Côté Arduino, on a déjà fait un joli tour de ses possibilités. mais ce cours se veut tourné vers les microcontrôleurs en général. On a aussi un peu décrit l'ATmega328 de chez Atmel mais il y en a d'autres, facilement programmables grâce à un module Uno (voir dans le forum les montages à moins de 5 euros à base d'ATtiny).

J'attends donc vos interventions pour savoir ce qui vous intéresserait d'étudier maintenant. Et bien entendu, en salle de TP, nous pouvons réaliser d'autres choses également...

Avatar du membre
alanya
Causant
Messages : 204
Enregistré le : jeu. 14 août 2008, 13:33
Echelle pratiquée : N, HO et H0e
Prénom : Yves
Club : RGP49
Localisation : Saumur
Âge : 63

Re: Démarrer en électronique programmable

Message par alanya » dim. 06 mars 2016, 10:49

Pour la salle des TP, peut être, voir le moyen de piloter un moteur, un servo-moteur.
En terme d'application je pense notamment aux ailes d'un moulin à vent ou encore d'un moulin à eau ; je pense aussi à un responsable de PN qui sortirai sur le pas de sa porte au passage du train qui a fait basculer sa barrière (un mouvement de va-et-vient)
RGP49

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » dim. 06 mars 2016, 12:15

alanya a écrit :.....
je pense aussi à un responsable de PN qui sortirai sur le pas de sa porte au passage du train qui a fait basculer sa barrière (un mouvement de va-et-vient)
Je suis en train de travailler à réduire des servos pour les implanter dans les genoux des personnages, mais en N, c'est pas facile. Peut-être avec les nanotechnologies... :mdr2:

Pour ce qui est des moteurs et des servos, j'ai déjà écrit un article sur cela dans Loco-Revue ; ce n'est donc pas un problème pour moi de rajouter cela dans le cours avec une appli en salle de TP.

Mais j'aimerais aussi parler du microcontrôleur ATtiny et de sa programmation, si cela vous intéresse bien sûr. A 1,5 € chez Conrad, on peut faire plein de petits montages bon marché et ce serait dommage de s'en priver. :wink:

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » dim. 06 mars 2016, 12:35

Erratum

En relisant ce cours d'électronique programmable, dans le but de voir comment le compléter, j'ai relevé trois petites choses qui méritent un peu d'explications :

Page 7 de ce forum :
La notation PB7:0 désigne le port B, les bits allant de 0 à 7.
Si j'avais écrit PB3, cela aurait voulu dire le bit 3 du port B (donc le quatrième en partant du bit le plus à droite dans l'octet, encore appelé bit de poids le plus faible (ou le moins significatif)).
Il faut s'habituer à ce genre de notation souvent utilisée dans les datasheets.

Page 9 de ce forum :
Le symbole du OU est || (et non && comme écrit).
Dans le programme du OU, le symbole est le bon sinon ce programme n'aurait pas fonctionné chez moi et je me serais rendu compte de l'erreur.

Enfin, l'ATMega328 est un microcontrôleur qui peut fonctionner jusqu'à 20 MHz et non 16 comme je l'ai indiqué. Par contre, sur le module UNO, il est utilisé à 16 MHz, cette fréquence étant réglée par un cristal de quartz. De même, le microcontrôleur ATMega328 peut être alimenté avec une tension allant de 1,8 à 5,5 V (une pile 4,5 V par exemple). Sur le module UNO, c'est une tension de 5 V qui a été retenue et elle est produite par un régulateur sur la carte du module si celui-ci est alimenté par un petit bloc d'alimentation de tension supérieure (7 à 12 V conseillée).

Avatar du membre
tgvdu88
Papotier
Messages : 180
Enregistré le : sam. 25 oct. 2008, 17:45
Site Internet : https://www.facebook.com/tgvdu88/
Contact :

Re: Démarrer en électronique programmable

Message par tgvdu88 » dim. 06 mars 2016, 12:43

Moi je serai preneur de 2-3 tp sur le microcontroleur atiny. Ça façon de le programmer...
J'ai vu deja 2-3 cours sur le net mais le refaire ici serait pas mal.
Les servo-moteurs aussi d'ailleurs m'interesse aussi. J'ai parcouru le fil dédié d'ailleur mais c'est pas trop ce que je cherchais...

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » dim. 06 mars 2016, 13:50

Ok, nous parlerons donc des ATtiny dans le cours avec TP.

J'ai déjà décrit comment faire, mais c'était encore avec l'ancien IDE version 1.0.5. (voir dans le forum Arduino les montages à moins de 5 euros).

Je vais donc réactualisé avec la version IDE actuelle (ça ne doit pas être très différent, mais pour en faire un cours, il faut que je fasse la manip de A à Z moi-même).

Avatar du membre
Dudule
Communicatif
Messages : 762
Enregistré le : lun. 23 juil. 2007, 08:37
Echelle pratiquée : H0
Prénom : Gérard
Localisation : Fourques 30300 France
Âge : 67

Re: Démarrer en électronique programmable

Message par Dudule » mar. 08 mars 2016, 15:59

bonjour Christian
concernant l'ATtiny comment ce programme t'il avec la carte ARDUINO
je n'en suis pas encore là, mais bon simple curiosité
pour l'instant je suis et j'enregistre les trois sujets ( démarrer en électronique programmable _ la salle de TP _ démarrer en électronique ) mais je n'ai pas trop le temps de pratiquer { la famille c'est compliqué };
toujours bravo et merci pour ce temps passé à nous apprendre
dieu existe ! donc je suis

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » mar. 08 mars 2016, 17:41

Dudule a écrit : { la famille c'est compliqué };
Oui, mais c'est important ! :wink:

Pour l'instant, je n'ai pas non plus beaucoup de temps pour le cours car je suis en train de terminer l'installation des signaux à 3 feux sur mon locodrome. Donc, je vais décrire cela et je voudrais poster une petite vidéo. Ensuite, la réflexion portera sur la façon d'améliorer le montage pour en faire un véritable B.A.L.

Ensuite, je reprendrai le cours. J'ai déjà quelques idées supplémentaires qui devraient nous amener à parler des ATtiny et de la façon de les programmer avec un module Arduino Uno. Donc, encore un peu de patience...

Mais c'est aussi le moment de demander ce que vous voulez apprendre. Au niveau actuel, je pense que ceux qui ont bien suivi ce qui a été dit sont devenus autonomes et peuvent commencer à développer de petites applications.

A plus. :moi:

Avatar du membre
Dudule
Communicatif
Messages : 762
Enregistré le : lun. 23 juil. 2007, 08:37
Echelle pratiquée : H0
Prénom : Gérard
Localisation : Fourques 30300 France
Âge : 67

Re: Démarrer en électronique programmable

Message par Dudule » mar. 08 mars 2016, 18:50

bon; va pour la patience .
je continu à parcourir les posts ,pour les manips je verrai plus tard.
A+ et bonne continuation
dieu existe ! donc je suis

Avatar du membre
sergio11
Bavard
Messages : 59
Enregistré le : ven. 08 janv. 2016, 22:20
Echelle pratiquée : N
Prénom : Serge
Localisation : 11 Ouveillan
Âge : 66

Re: Démarrer en électronique programmable

Message par sergio11 » mar. 08 mars 2016, 23:25

Bonsoir
Bien que travailleur de l'ombre je suis très intéressé par tout ce qui se passe ici. J'essaie moi aussi de jongler avec le temps, aussi je n'ai pas pu avancer sur le dernier exercice
Mais j'ai déjà énormément appris ici, je reconnais que pour Christian, je ne sois pas un élève motivant, je m'en excuse... mais je tiens à le rassurer sur tout l'intérêt que je porte à ce cours interactif et je surveille quasiment tous les jours si la page 18 n'a pas évolué.
J'attends bien entendu la suite sur les Attiny... pour ma culture bien sur.
Mais je me demande si c'est encore intéressant économiquement car j'essaie de faire quelques animations lumineuses pour un copain et j'ai investi pour lui dans un nano....avec les yeux bridés...pour 3 euros
A bientot et merci
Bonne soiree

Avatar du membre
Arduino
Prolixe
Messages : 1701
Enregistré le : mer. 25 sept. 2013, 17:14

Re: Démarrer en électronique programmable

Message par Arduino » mer. 09 mars 2016, 01:47

Bonjour sergio11,

Le fait de prendre la parole de temps en temps pour dire qu'on est là est déjà très motivant pour le "prof" ; et je comprends fort bien que le temps manque à tout le monde (regarde l'heure à laquelle je poste cela)... :lol:

Pour répondre à ta question, je dois dire que c'est toujours l'argument qu'on me sort : un Nano aux yeux bridés coûte quasiment le même prix qu'un ATtiny45. En plus, s'utilise comme un UNO. Donc, c'est un bon choix...

Disons que l'ATtiny nous servira à parler d'autres µC et de sortir un peu de la solution Arduino (encore que ... :lol: ).

Répondre