Go Down

Topic: realisation porte automatique (Read 5 times) previous topic - next topic

taddot

regarde la doc des régulateurs 7805 / 7812 et compagnie.

Ensuite, va faire un tour sur le site de sonelec (utilise google) dans la rubrique "montages"

Ensuite, fait des essais ;) - commence par utiliser un crayon et une gomme, puis trace un schéma de montage qui te semble logique avec ce que tu auras appris sur les docs ci-dessus. Soumets le ici pour correction avant réalisation d'un proto.
note : tu peux aussi utiliser Fritzing
pas taper... sauf application de l'article 35 ...

Jean & Jean-Baptiste

#6
May 20, 2011, 11:38 pm Last Edit: May 20, 2011, 11:48 pm by jjdu67 Reason: 1
Bonsoir
Alors voici mon premier schema :
[IMG=http://img807.imageshack.us/img807/2439/jhk001.jpg][/IMG]

Uploaded with ImageShack.us

Mais comme dit c'est vraiment basique . il me reste a calculer la valeur des resistances mais avant sa j'ai encore quelques questions :
- Est t-il vraiment necesaire de mettre un regulateur pour la partie 1?
- Est t-il possible de brancher l'arduino + shield ethernet  sur le meme regulateur que celui du moteur de la porte (regrouper partie 2 et 3) ?
bref j'en est fini pour se soir
se projet me tient particuliérement a coeur (j'ai deja mis en place tout les cablages et presque tout le reste, il me manque plus que la fabrication de cette boite avec l'arduino et tout le reste)
Bon bonne nuit tout le monde je revien demain pour poster des photos et d'autres explications

Super_Cinci

Salut!

Très compliquée, ton alim, pour ce qu'elle doit faire.

Pourquoi n'utilises-tu pas une alim de PC, qui te fournira toutes les tensions nécessaires? elle te donnera du 12V sur 2A à 5A, deux lignes 5V (l'une à 1A pour l'arduino, l'autre à 20A pour tout le reste), et même du 3.3V, du -5V, du -12V... Le tout super régulé et déjà tout fait et surtout étudié pour la micro. il suffit juste de shunter deux fils et mettre une résistance sur le 5V de puissance pour assurer une consommation suffisante. Pour avoir du 9V, par contre, il te faudra un 7809 sur le 12V.

Dans ton schéma, si tu veux utiliser un 7812, il te faut un transfo de 15V (les régulateurs ont besoin d'une entrée d'au moins 3V au dessus de la sortie pour bien marcher), et tes régulateurs 5V vont beaucoup chauffer (la série 78/79 supporte mal la puissance au dessus de 5W pour des TO220). La puissance dissipée par un régulateur est (Vin-Vout) x Iout, et il faut rester en dessous de la moitié des limites du constructeur (même avec dissipateurs thermiques, cherche pas pourquoi, moi j'en ai cramé un paquet en les faisant marcher dans les autorisations constructeurs...).

Pour info, les régulateurs portent les noms suivants : 78_xx et 79_xx, 78 = régulateur positif et 79 = régulateur négatif, xx la tension de sortie, on en trouve des 03, 04, 05, 06... presque toutes les tensions. Ca évite le calcul de résistances...

Mais vois l'alim de PC... ça reste le plus simple...

Jean & Jean-Baptiste

#8
May 22, 2011, 12:58 pm Last Edit: Jun 07, 2011, 04:34 am by Jean-François Reason: 1
merci pour les explications =)
je met tout sa un peu de coté car je viens de recevoir mon arduino.
Mais je suis vraiment débutant donc j'aurais besoin d'aide .
alors je m'explique : mon but est d'allumer la led1 grâce a une pression sur le bouton poussoir 1 et d'éteindre cette led1 2 seconde aprés. puis de ne rien faire tant que j'appuis pas sur l'interupteur2 .
une fois le l'interupteur2 enclenche, la led2 doit s'allumer pendant 2 secondes puis s'arrêter .
alors mon programme :

Code: [Select]

// --- Déclaration des constantes ---

const int APPUI=0; // constante état du BP - appui sur niveau bas
const int PAS_APPUI=1; // constante état du BP - relâché sur niveau haut


// --- constantes des broches ---

const int BP1=2; //declaration constante de broche
const int relais1=3; //declaration constante de broche
const int relais2=4; //declaration constante de broche
const int BP2=5;

// --- Déclaration des variables globales ---

int ETAT_BP1; // variable d'état du bouton poussoir
int ETAT_BP2; // variable d'état du bouton poussoir

// --- Initialisation des fonctionnalités utilisées ---

//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage ---

pinMode(relais1, OUTPUT); //met la broche en sortie
pinMode(relais2, OUTPUT); //met la broche en sortie

pinMode(BP1, INPUT); //met la broche en entree
digitalWrite(BP1, HIGH) ; // activation du pullup de la broche en entrée
pinMode(BP2, INPUT); //met la broche en entree
digitalWrite(BP2, HIGH) ; // activation du pullup de la broche en entrée

} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// --- ici instructions à exécuter par le programme principal ---

ETAT_BP1=digitalRead(BP1); // lit l'état du BP1 et met la valeur 0/1 dans la variable
ETAT_BP1=digitalRead(BP2); // lit l'état du BP2 et met la valeur 0/1 dans la variable


 if (ETAT_BP1==APPUI);{
 digitalWrite(relais1,1); // allume la LED
 delay(2000);                  // waits for a second
 digitalWrite(relais1,0);
 }
 
 if (ETAT_BP2==APPUI);{
 delay (3000);
 digitalWrite(relais2,1);
 delay(2000);
 digitalWrite(relais2,0);
}

// remarque : on aurait pu écrire ceci sur une seule ligne selon :
// if (ETAT_BP==APPUI)digitalWrite(LED,1); else digitalWrite(LED,0);

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

// --- Fin programme ---




mais se programme ne fonctionne pas ?

Super_Cinci

1 - le programme marche mal, mais très bien (tu peux allumer le led1 mais tant qu'elle est allumée, tu ne peux pas agir sur la 2).
2 - tu as pris un truc tout fait, donc il ne correspond peu-être pas à tes attentes.
3 - tes leds sont à l'envers?
4 - tes BP sont mal câblés?
5 - pour n'allumer que deux leds (ou deux relais), c'est bien rempli, je trouve...

je te propose le prog suivant (avec led intégrée sur pin 13) :

Code: [Select]

const byte ledPin = 13; // led intégrée sur broche 13
const byte bp1 = 8; // BP branché entre pin 8 et GND

void setup(){
  pinMode (ledPin, OUTPUT);  // pin led en sortie
  pinMode (bp1, INPUT);        // pin bp en entrée
  digitalWrite (bp1, HIGH);     // pulup "on"
}

void loop(){
  while (digitalRead(bp1) == HIGH) {}  // boucle tant que pas d'appui.
  digitalWrite (ledPin, HIGH);             // led ON
  delay (1000);                                // attendre 1 seconde (1000 ms)
  digitalWrite (ledPin, LOW);             // led OFF
}

Go Up