Show Posts
Pages: 1 2 [3] 4 5 ... 243
31  International / Français / Re: Type de condasateurs on: August 02, 2014, 04:47:45 am
Pour du filtrage de rebond tu peux prendre à peu près n'importe quoi en non polarisé, du moment que la capacité et le voltage sont adéquats
32  International / Français / Re: c'est quoi ce charabia on: August 02, 2014, 04:43:05 am
Cette ligne
Code:
    Serial.print(addr, HEX);

doit s'écrire comme ça
Code:
Serial.print(addr[i], HEX);


C'est juste un bug parce qu'il n'a pas utiliser les balises code, c'est pour ça que ça fait de l'italique smiley-wink
33  International / Français / Re: Configurer a la volée adresse de réception Mirf on: August 02, 2014, 01:50:56 am
Salut,

Y'a rien de compliquer : les nrf demande 5 bytes pour définir une adresse (d'ailleurs ton premier exemple ne donnera pas 7 et 49, mais les code ascii de 7 et de 4 et de 9), un peu comme une adresse ip.

Donc un tableau de byte :

Code:
byte emetteur[]={0,0,0,0,7};
byte destintaire[]={0,0,0,4,9};
 

On pourrait aussi bien écrire :

Code:
byte emetteur[]={0,0,255,0,27};
byte destintaire[]={0,124,0,1,14};
 

Et ça ne siginie pas les nombre 255027 ou 1240114, non, ça signifie à chaque fois 5 nombre differents compris en 0 et 255 (des bytes quoi)
34  International / Français / Re: demande aide pour syntaxe envoi trame liaison serie entre 2 arduino on: August 02, 2014, 01:46:40 am
Oui tu ne peux pas transformer comme ça un float en tableau de char, faut utiliser sprintf() :

Code:
char message[20];
float temperature = dht.readTemperature();
sprintf(message, "%f", temperature);
float monFloat=atof(message);
Serial.println(monFloat)

Pour le problème juste avant ce ne doit pas être le code exact que tu as utilisé, puisqu'il y a une erreur sur les noms des variables. De plus je ne sais pas si atof apprécie les espaces.

Corrigé :

Code:
char nombre[] = "18.254";
float monFloat=atof(nombre);
Serial.println(monFloat);
35  International / Français / Re: c'est quoi ce charabia on: August 02, 2014, 01:38:54 am
Bizarre ... T'as essayé de reinstaller la lib ?
36  International / Français / Re: demande aide pour syntaxe envoi trame liaison serie entre 2 arduino on: August 01, 2014, 09:55:27 am
Alors déjà le bcd n'a rien à faire ici, l'ASCII en revanche smiley-wink

Pour write et print : il faut partir de la base. Dans tous les cas, la liaison série envois des bytes, donc un nombre en 0 et 255. Donc on peut envoyer en direct un nombre entre 0 et 255. Ca se fait avec write() :

Code:
Serial.write(18);

à la réception :

Code:
byte monByte=Serial.read; // mon Byte vaut alors 18

Maintenant il existe la table ASCII qui est une convention qui définie pour chaque nombre entre 0 et 255 un caractère ou une fonction. Par exemple A c'est 65, B c'est 66 ... Mais pour bien voir la différence on va reprendre le 18 d'avant. En ASCII comme on est limité à un caractère, il va falloir envoyé 1 puis 18, soit en ASCII 49 et 56. Je peux alors le faire de plusieurs manières :

Code:
Serial.write(49);
Serial.write(56);

A la réception :

Code:
char Buffer[2];
Buffer[0]=Serial.read();
Buffer[1]=Serial.read()
byte maVariable=atol(Buffer);

Mais je peux également écrire à l'émission :

Code:
Serial.print("18");

ou bien encore :

Code:
Serial.write('1');
Serial.write('8');

Les apostrophes renvoi le code ASCII du caractère qu'elles entourent.

Maitenant si à la réception tu fais :

Code:
byte Buffer[2];
Buffer[0]=Serial.read();
Buffer[1]=Serial.read()

Ton tableau sera alors {49,56} mais en fait le tableau de char contient les mêmes valeurs, c'est pour le reste de la programmation que ça posera problème, puisque il ne sera pas reconnu comme un tableau de caractère.

On peut s'arranger un peut de toute les manières, ce qui compte c'est que la manière de discuter soit la même. Au passage on note que l'envois en binaire est plus performant en terme de débit : l'envois en ASCII prendre 2 fois plus de temps (et si c'est un nombre >100  3 fois !) mais ce n'est pas forcement embêtant si le débit de donner dont on a besoin est très faible.

pour atol (array to long) et atof (array to float) : elles convertissent une chaine de caractères contenant une valeur en long ou en float :

Code:
char nombre[] = 18.254;
float monFloat=atof(nombre);
37  International / Français / Re: Relais statique du commerce on: August 01, 2014, 09:41:25 am
Comme évoqué juste avant, tout dépend du type de charge commutée et du type de commande.

Résistif simple ON/OFF => ok il n'y a qu'à suivre la puissance

Inductif et/ou commande plus complexe => à étudier ...

Sinon tu l'avais peut-être prévu mais un fusible est très rarement superflu smiley-wink

Et suivant ce qui est commandé perso je prévois toujours une sécurité en série de la commande Arduino en composant discret + une coupure manuelle sur la partie puissance : même si tout marche pendant des mois, on est jamais à l'abri d'injection de parasite par le 230V par exemple, ce qui peut figer le µC. Si tu bloques un four en chauffe bonjour les dégâts ...
38  International / Français / Re: Arduino et un environnement industrielle on: August 01, 2014, 06:57:55 am
La soudure  sans plomb est davantage une question environnementale que technique.
Les condensateurs chimiques lâchent sur les cartes bien avant les soudures.


Ca dépend toujours du milieu, du dimensionnement des condo et de la criticité de leur performance. Demande aux réparateurs de clés sans fil s'il ne changent pas plus souvent les interrupteurs et leurs soudures plutôt que les condo smiley-wink

Après on est d'accord que le condensateur qui vieilli est la cause la plus courante de panne (spéciale dédicace à l'obsolescence programmée)
39  International / Français / Re: c'est quoi ce charabia on: August 01, 2014, 06:52:41 am
Y'a que le modo qui a ce pouvoir (c'est un suisse alors ça va pas se faire de suite :p)

Si ta version est bien la 023 alors le problème peut venir de la : visiblement ta lib ne trouve pas les librairies de base qui permettent d'utiliser les fonction de base fournies par Arduino (delay(), digitalWrite() ...).

La 023 est une ancienne version, et justement à partir de celle d'après (la 1.0) des changement notables ont été opéré. Il se peut que ta lib ne gère pas cette transistion.
40  International / Français / Re: c'est quoi ce charabia on: August 01, 2014, 01:26:26 am
Salut,

Quelle version d'IDE ?

Sinon le bar n'est pas la bonne section, et pense à utiliser les balises code (# dans le menu de rédaction) pour poster du code (plus lisible et annule les autres balises)
41  International / Français / Re: Contrôleur de jeu Windows... on: July 31, 2014, 11:46:49 am
Salut,

Fait une recherche sur le forum le sujet a été évoqué y'a pas longtemps smiley-wink
42  International / Français / Re: demande aide pour syntaxe envoi trame liaison serie entre 2 arduino on: July 31, 2014, 11:45:59 am
Salut,

.print() ou .write() c'est toi qui voit ... si tu fait .print(), il faut recevoir ta chaine en char. Si .write(), en byte. Et après quelque soit ton choix il faut re-séparer les composantes évidemment.

Le plus simple pour l'émission c'est par exemple de faire :

Code:
Serial.print("$");
Serial.print(",");
Serial.print(Variable1);
Serial.print(",");
Serial.println(Variable2);

Et à la réception de détecter le $, de charger ce qui arrive dans un tableau de char, et dès qu'il y a une virgule on prend ce qui est dans le tableau, on fait un coup d' atol() ou d'atof() pour repasser en variable numérique et on continu comme ça jusqu'au \r\n ajouté par println()
43  International / Français / Re: programme porte garage on: July 31, 2014, 02:59:25 am
Salut,

Je tiens à faire une première remarque : gaffe avec ce genre de bricolage, les portes automatiques ne sont pas inoffensives, le fils d'amis à mes parents est dans un fauteuil roulant nourri à la paille depuis ses 10 ans et ce pour le restant de ses jours car il s'est coincé le coup dans un portail automatique dont la sécurité n'a pas fonctionné. Donc soit extrêmement prudent ! Normalement ce genre de système possède un suivi du courant du moteur qui permet de détecter un effort excessif du moteur (un moteur bloqué consomme beaucoup plus de courant que s'il est libre).

Pour ton programme, je te suggère de passer par un switch/case sur une variable qui sera incrémentée par le bouton

si appui sur bouton {
incrémentation variable
si variable>3 variable = 0
stockage de millis dans variable temps
}

si variable temps + 15s<= millis() variable=0

switch variable {

case 0
digitalWrite(monter,high)
digitalWrite(descendre,low)
case 2
digitalWrite(monter,low)
digitalWrite(descendre,high)
default
digitalWrite(monter,low)
digitalWrite(descendre,low)
}

A noter que l'effet de rebond n'est pas gérer ici. Au premier appui ça monte, au deuxième ça stoppe, au troisième ça descend, au quatrième ça stoppe.
44  International / Français / Re: Programmation ATmega328p avec Arduino UNO on: July 30, 2014, 11:37:40 am

Oui mais la ça ne passera pas par le port série.


Oui mais c'est seulement pour charger le bootloader ça non?

Tu peux aussi programmer par ce biais, le bootloader n'est rien de plus qu'un programme.

Si tu veux utiliser le bootloader, la procédure est la même que pour une pro par exemple.  Avec un dongle dédié :



Avec une Uno faut reprendre les mêmes pins : RX,TX et RST (DTR sur le dongle)
45  International / Français / Re: Bargraph, Arduino et LM3914 ?! on: July 30, 2014, 11:33:04 am
Salut,

Faut juste filtrer la sortie PWM avec un circuit RC smiley-wink

Pages: 1 2 [3] 4 5 ... 243