0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« on: May 25, 2010, 09:14:09 am » |
Bonjour messieurs et mesdames . j'ai besoin d'aide pour la programmation d'un projet que je suis en train de réalisé . En gros je contrôle la mise en marche et l'extinction de poste de radio afin de généré du bruit capté via les postes sur les grandes ondes. L'idée est de créer du phasage / déphasage dans les allumages extinctions des postes à la manière des musiques minimalistes américaine ( Steve Reich, Philip Glass ou encore Terry riley et bien d'autre )
Pour le moment j'ai juste repris un code de led le : blink , et j'ai rentré plusieurs variables correspondant aux différentes sortie PWM sur lesquelles sont branché mes relays et j'ai mis des temps d'allumage différents .
Mais du coup là je n'ai qu'un systême de répétition d'allumage et d'extinction de mes postes.
j'ai vraiment besoin que chaque poste ait un cycle d'allumage et d'extinction différents : poste 1 on : 1sec off : 1,2sec et poste 2 on: 0,5sec et off : 0,2sec. c'est un exemple mais voila l'idée .
Voila je ne vois vraiment pas comment programmer ça pour le moment.
Merci d'avance pour votre aide .
valentin .
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Online
Edison Member
Karma: 7
Posts: 1660
Do or DIY
|
 |
« Reply #1 on: May 25, 2010, 05:49:01 pm » |
Salut !
Désolé mais je vois pas trop la différence entre ce que tu as fait et ce que tu veux faire :s tu veux que ça s'allume au hasard ?
Rq : pas besoin spécialement des sorties PWM pour commander un allumage, les sorties digitales suffisent.
|
|
|
|
|
Logged
|
|
|
|
|
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #2 on: May 26, 2010, 12:52:27 am » |
regarde ici : maitriser le tempsTu remplaces SDL_GetTicks() par la fonction millis() et tu crées autant de variable de temps que tu as de radio( int timeRadio1,timeRadio2,timeRadio3...).
|
|
|
|
« Last Edit: May 26, 2010, 08:54:15 am by jfs »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #3 on: May 26, 2010, 02:26:20 am » |
Je veux pouvoir donner des temps d'allumages et d'extinction pour chaque postes . Et que chaque poste boucle de façon autonome selon ses temps d'on et off
Et tu peux controler des relays par les sorties digitales ? je croyais que justement les pwm c'était pour ça . enfin c'est pas le problème .
je regarde ce que jean françois m'a mis .
merci en tout cas . valentin .
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #4 on: May 26, 2010, 02:46:06 am » |
Punaise j'ai du mal à faire le lien avec ce que j'ai . Là on arrive à calculer le temps écouler depuis le début du lancement . Moi je veux rentrer mes temps . tu vois ? radio 1 on : 1sec off : 1,1sec et LOOP radio 2 on : 0,5sec off : 0,8sec et LOOP radio 3 on : 0,9sec off : 2,1sec et LOOP radio 4 on : 1,5sec off : 3,1sec et LOOP je veux que chaque loop soit autonome, pas que le code lise tous au fur et à mesure et revienne au début . j'espère que c'est plus clair . valentin . 
|
|
|
|
|
Logged
|
|
|
|
|
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #5 on: May 26, 2010, 02:57:47 am » |
Ben oui..... timeRadio1=millis();
if(timeRadio1-oldTimeRadio1>= 1000){ allume_ta_radio_1(); oldTimeRadio1=timeRadio1; }
timeRadio2=millis();
if(timeRadio2-oldTimeRadio2>= 1500){ allume_ta_radio_2(); oldTimeRadio2=timeRadio2; } si la différence entre le temps écoulé et le temps précédent fait plus ou est égale à 1000, ta radio s'allume.... donc tu peux faire que ta radio 1 s'allume toute les secondes (1000) la 2 toutes les 1,5 secondes (1500) etc.
|
|
|
|
« Last Edit: May 26, 2010, 03:05:27 am by jfs »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #6 on: May 26, 2010, 03:04:43 am » |
Ok je suis un peu lent par moment . je vais tester ça sur mes postes directement je serais sur comme ça . merci merci . valentin . 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #7 on: May 26, 2010, 03:08:45 am » |
Mais là je gère les on . mais les off ne sont pas pris en compte là si ?
à la rigueur je rajoute une ligne avec millis pour avoir 1000ms de off par exemple ?
valentin .
|
|
|
|
|
Logged
|
|
|
|
|
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #8 on: May 26, 2010, 03:24:15 am » |
si elles s'allument et s'éteignent à la même fréquence que leur allumage, tu fais un boleen etatRadio: allume _la_radio(){ etatRadio= !etatRadio;
if (etatRadio){ allume la radio; } else{ eteint la radio; }
|
|
|
|
« Last Edit: May 26, 2010, 03:36:40 am by jfs »
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #9 on: May 26, 2010, 03:31:49 am » |
merci merci merci je vais taffer la dessus .
valentin .
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #10 on: May 27, 2010, 03:22:55 am » |
Bon j'ai commencé à codé cela, mais vu que je n'ai jamais codé du boolean et du millis() je t'avoue que je suis un peu perdu .
je comprend la globalité mais après la syntaxe, je lutte .
mon code sans le boolean :
int radio1 = 9; int radio2 = 10; int radio3 = 5; int radio4 = 6;
void setup() { // initialize the digital pin as an output: pinMode(radio1, OUTPUT); pinMode(radio2, OUTPUT); pinMode(radio3, OUTPUT); pinMode(radio4, OUTPUT);
void loop()
timeRadio1=millis();
if(timeRadio1-oldTimeRadio1 >= 1000 { allume_ta_radio_1 () oldTimeRadio1=timeRadio1; }
timeRadio2=millis();
if(timeRadio2-oldTimeRadio2 >= 1500){ allume_ta_radio_2(); oldTimeRadio2=timeRadio2; }
voila ou j'en suis . :-/ valentin .
|
|
|
|
|
Logged
|
|
|
|
|
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #11 on: May 27, 2010, 05:40:00 am » |
Tu peux faire une simple fonctionque allume _la _radio(); que tu remets dans chaque itération if() et que tu déclares en dehors de ta boucle: bolean etat_radio1=Low; // declaration du boleen etat_radio bolean etat_radio2=Low; int choix_radio=0; // declare le n[ch730]de la radio à allumer à 0 aucune ne s'allume.
allume_ta_radio(){ // fonction à placer en dehors de void loop() et void setup(). switch (choix_radio){
case 0;
digitalWrite(radio1,Low); digitalWrite(radio2,Low); break;
case 1:
etat_radio1= !etat_radio1 ; // inverse la valeur de etat_radio1 (Low-High)
digitalWrite(radio1, etat_radio1);
break;
case 2:
etat_radio2= !etatradio2 ; // inverse la valeur de etat_radio2 (Low-High)
digitalWrite(radio2, etat_radio2); break; } sans être sur de la syntaxe.... 
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 16
Arduino rocks
|
 |
« Reply #12 on: May 28, 2010, 02:40:02 am » |
Bon, j'essayé de comprendre, mais millis je comprend le fonctionnement, boolean plus ou moins mais les deux ensemble, je comprends pas du tout, et ou mettons nous le void setup void loop du coup ? ...
Je suis vraiment petit petit en programmation et là c'est beaucoup trop pour moi .
juste m'aider sur ou m'être le void setup et loop .
valentin .
|
|
|
|
|
Logged
|
|
|
|
|
Geneva
Offline
Faraday Member
Karma: 22
Posts: 2879
Yoplait... le pt'it suisse
|
 |
« Reply #13 on: May 28, 2010, 05:10:43 am » |
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
|