Show Posts
|
|
Pages: 1 [2] 3 4 5
|
|
18
|
International / Français / circuit d'allumage par bouton poussoir
|
on: January 20, 2013, 02:43:00 am
|
|
Bonjour a tous, je bloque sur un système tres courant, je m'explique: j'ai réalisé une télécommande avec écran lcd et arduino nano, tous fonctionne c'est ok. Cette télécommande est alimenté par une pile de 9v rectangulaire. j'aimerais remplacer mon interrupteur à glissére de mise sous tension de l'arduino par un bouton poussoir. Evidement il ne faut pas que pendant que l'arduino est éteinte ce système consomme du courant sur ma pile. j'ai cru comprendre qu'il existerais un montage a base de condensateur, mais j'en sais pas plus. Existe t'il des kit avec le montage tout fait? merci d'avance.
|
|
|
|
|
19
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: December 01, 2012, 07:24:30 am
|
ok, j'ai trouvé un maniere de contourner le problème, bien plus longue mais qui fonctionne. Par contre c'est pas tres propre. #include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" ! int led = 5; //vert int led2 = 6; //rouge
void setup() { Serial.begin(9600); // On initialise "le serial monitor", j'ai laissé 9600 bauds ici car c'est la valeur par défaut mais vous pouvez la modifier. Attention à bien mettre la même valeur dans votre Serial Monitor et dans votre programme. vw_setup(2000); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire. vw_set_rx_pin(11); // C'est sur cette broche que l'on reliera les broches DATA du récepteur, vous pouvez changez de broche si vous le désirez. vw_rx_start(); // On démarre le récepteur. pinMode(led, OUTPUT); pinMode(led2, OUTPUT); }
void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // On test afin de savoir si un message est reçu. { int i; // Un message est reçu.
for (i = 0; i < buflen; i++) // on recoit le msg lettre par lettre { Serial.write(buf[i]); // On affiche le message lettre par lettre. Par exemple buf[4] sera égale à la 5ème lettre du mot envoyé (Snootlab donc "t") car on compte le zéro ici. } Serial.println(""); // On saute une ligne afin d'avoir plus de clarté. } { if (buf[0] == 'V') if (buf[1] == 'a') if (buf[2] == 's') if (buf[3] == 's') if (buf[4] == 'i') { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for a second }
if (buf[0] == 'r') if (buf[1] == 'i') if (buf[2] == 'e') if (buf[3] == 'n') // if (buf[4] == 'i') { digitalWrite(led2, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for a second digitalWrite(led2, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for a second }
}} je suis sur que sa va arrcher les rétines des pros du forum qui vont maintenant me dire "mais pourquoi ta pas plutot fais comme ça...?!!! " 
|
|
|
|
|
20
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 30, 2012, 08:18:33 am
|
Ok, j'ai fais le test, c'est idem au code avec serial. C'est à dire qu'il faut que je coupe l'alimentation et remette l'alimentation de la carte réceptrice pour que le nouveau code soit pris en compte, et donc que la led réagisse.
bonjour pour etre sur que l'on se comprenne bien : tu charge un code recepteur avec (exemple) la chaine pour la led = "LED1" ON OFF de la carte receptrice tu envoie "LED1" = action led OK tu charge un nouveau code recepteur avec "LED2" sans ON/OFF tu envoi "LED2" = pas d'action sur la led , c'est ça ? si tu envoi "LED1" , il y a encore action sur la led ? si j'envoie un nouveau code il n'est pas pris en compte (que se soit LED1 ou LED2). La carte réceptrice conserve son état. Sauf si je coupe l'alimentation de l'émetteur: a ce moment la la led ne clignote plus. Et si je remet l'alimentation de l'émetteur elle ne se rallume pas. pour resumer : Si je reset la carte réceptrice , elle "rafraichira" avec le code reçu au moment de son allumage, après elle ne change plus d'état selon les différents codes qu'elle peu recevoir. j'ai pensé que c'est le buffer qui reste en mémoire et qui ne serait pas écrasé par le nouveau code qui arrive. Alors dans Void Loop, j'ai mis toutess les variables a "0" en fin de programme (après le clignotement) mais sa n'a pas fonctionné. La je ne sais vraiment plus quoi faire. Je commence a perdre espoir, surtout pour une operation aussi basique (j'ai honte.... lol)
|
|
|
|
|
21
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 30, 2012, 03:38:56 am
|
|
Ok, j'ai fais le test, c'est idem au code avec serial. C'est à dire qu'il faut que je coupe l'alimentation et remette l'alimentation de la carte réceptrice pour que le nouveau code soit pris en compte, et donc que la led réagisse.
|
|
|
|
|
22
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 29, 2012, 11:49:40 am
|
...
Pour ce qui est du code sans le serial, je ne sais pas faire tous simplement ! ...
Tu a testé "mon" code au dessus ? Non, pas encore, mais j'ai hate, j'espere que sa marche.La je suis chez moi , j'ai pas les cartes pour essayer. Demain matin je teste ça arrivé au bureau et je te tiens au courant.Merci !!!! 
|
|
|
|
|
23
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 29, 2012, 09:22:57 am
|
Oui, je partage ton avis sur ce magnifique pays qu'est Madagascar. Le paradoxe de l'ocean Indien... (mais je vais arrêter la le hors sujet  ) Question subsidiare: Connais tu la Reunion ? Pour ce qui est du code sans le serial, je ne sais pas faire tous simplement ! pfffff  d'ou le titre du topic > tuto 433mhz  je me suis basé sur le tuto de Skywodd, que j'ai essayé de bidouiller, et je m'y suis mal pris parceque sa fonctionne "presque"... (je deteste le "presque" !!!!  ) Donc retour à la case depart. Mais oui, effectivement à terme mon but est de me passer de l'ordi pour rendre ce montage "autonome". En fait ce que je veu est tous simple: une action sur la carte émettrice engendre une reaction sur la carte réceptrice. Y'a bien quelqu'un ici qui a déjà recrée un module du style portail électrique, ou quelque chose du genre ? merci d'avance.
|
|
|
|
|
24
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 29, 2012, 08:51:07 am
|
Rooooooo, un Malgache !  Pour le reset apres ulpoad, je pense pas car le nouveau message est bien reçu par le moniteur serie. Mon problème est que justement , si le moniteur serie n'est pas ouvert, ma led ne réagit pas. Et si je change le message , je dois "rafraichir" le moniteur serie en l'ouvrant et le refermant. J'ai inclus un Serial.end()et un Serial.begin dans Void Loop mais rien n'y fait. Je pensait que les fonctions "Serials" fonctionnaient meme si le moniteur serie est fermé. Apparemment ce n'est pas le cas.  Pour rappel, je cherche juste a commander une led par l'intermediaire du couple émetteur-récepteur 433Mhz. Bon ok, je pourrais utiliser juste un caractere pour une action. Mais quand meme , vu que je peu recevoir un message entier, pourquoi se limiter a une lettre? - ça donne quoi en supprimant dans le code "de réception" , toutes les références "serial" ? Peut tu preciser la question STP?
|
|
|
|
|
26
|
International / Français / Re: [Info] Bac à ultrason: Principe et fabrication ?
|
on: November 29, 2012, 01:12:30 am
|
|
Salut a tous, je sais pas si mon experience peu servir mais j'en ai un que j'utilise quelques fois. Pour décaper de la crasse rigide (calamine par ex.) c'est pas mal, surtout dans les endroit inaccessible. Mais en ce qui me concerne, c'est surtout la corrélation (bain chimique / T°C/ ultrason) qui est efficace. Pour la calamine sur le laiton j'utilise de l''ammoniac que je dissous dans l'eau chaude. Sa pue et c'est toxic (local ventilé obligatoire) en plus c'est pas vraiment "eco-friendly"... mais bon , c'est dans les cas exceptionnels. Le mien fonctionne a 40Khz (c'est bruyant) et il coupe au bout de 15 minutes environs. Faut faire plusieurs cycles quand c'est vraiment crade. en meme temps s'en est un du commerce "à pas chère" donc ceci explique peut être cela. En espérant apporté de l'eau a ton moulin.
|
|
|
|
|
27
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 28, 2012, 10:28:44 am
|
alors voila ou j'en suis : sa fonctionne seulement si j'ouvre le moniteur serie. Si je change le code de l'émetteur, le terminal serie affiche le nouveau code mais la led ne réagit pas. Pour qu'elle reagisse je dois fermer et réouvrir le moniteur serie. Quelqu'un a t'il un debut d'explication ? #include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" ! int led = 5; char inData[4]; // Allocate some space for the string char inChar=-1; // Where to store the character read byte index = 0; // Index into array; where to store the character
void setup() { Serial.begin(9600); // On initialise "le serial monitor", j'ai laissé 9600 bauds ici car c'est la valeur par défaut mais vous pouvez la modifier. Attention à bien mettre la même valeur dans votre Serial Monitor et dans votre programme. vw_setup(2000); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire. vw_set_rx_pin(11); // C'est sur cette broche que l'on reliera les broches DATA du récepteur, vous pouvez changez de broche si vous le désirez. vw_rx_start(); // On démarre le récepteur. pinMode(led, OUTPUT); }
void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // On test afin de savoir si un message est reçu. { int i; // Un message est reçu.
for (i = 0; i < buflen; i++) // on recoit le msg lettre par lettre { Serial.write(buf[i]); // On affiche le message lettre par lettre. Par exemple buf[4] sera égale à la 5ème lettre du mot envoyé (Snootlab donc "t") car on compte le zéro ici. if(index < 3) // One less than the size of the array { inChar = buf[i]; // Read a character inData[index] = inChar; // Store it index++; // Increment where to write next inData[index] = '\0'; // Null terminate the string }
} Serial.println(""); // On saute une ligne afin d'avoir plus de clarté.
if(strcmp("aaa", (char*)inData) == 0) // if (inData=='aaa') { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
}}
|
|
|
|
|
28
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 28, 2012, 08:28:39 am
|
|
ahhh , surement , la aussi j'ai essayé pa mal de trucs...
le buffer dans mon code actuel contient t'il le message en entier ? ou le stocker afin de le comparer ? et bien sur de quelle façon le comparer?
|
|
|
|
|
29
|
International / Français / Re: cherche tuto debutant 433Mhz
|
on: November 28, 2012, 08:05:04 am
|
Salut Artouste ! Alors oui de cette façon sa marche (j'avais essayé déjà). Ce que je ne sais pas faire c'est "enregistrer" le buffer (un mot) , donc si j'ai bien compris sous forme de "string" et le comparer a une variable. Si le resultat est identique > commande du style "digital.Write" ou quelque chose de classique. j'ai essayé les "strcmp" et consorts mais je ne m'en sort pas. je crois que je m'y prend mal pour incrémenter le buffer caractère par caractère, à chaque fois j'ai une erreurs de compilation. Je ne comprend pas trop le message d'erreur mais c'est quelque chose du genre "la conversion de string en int n'est pas possible" .... voici la base de code sur laquelle je suis: #include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" ! int led = 5;
void setup() { Serial.begin(9600); // On initialise "le serial monitor", j'ai laissé 9600 bauds ici car c'est la valeur par défaut mais vous pouvez la modifier. Attention à bien mettre la même valeur dans votre Serial Monitor et dans votre programme. vw_setup(2000); // Bits par seconde (vous pouvez le modifier mais cela modifiera la portée). Voir la documentation de la librairie VirtualWire. vw_set_rx_pin(11); // C'est sur cette broche que l'on reliera les broches DATA du récepteur, vous pouvez changez de broche si vous le désirez. vw_rx_start(); // On démarre le récepteur. pinMode(led, OUTPUT); }
void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // On test afin de savoir si un message est reçu. { int i; // Un message est reçu.
for (i = 0; i < buflen; i++) // on recoit le msg lettre par lettre { Serial.write(buf[i]); // On affiche le message lettre par lettre. Par exemple buf[4] sera égale à la 5ème lettre du mot envoyé (Snootlab donc "t") car on compte le zéro ici. } Serial.println(""); // On saute une ligne afin d'avoir plus de clarté.
if (buf[2] =='a') { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
}}
|
|
|
|
|