Show Posts
Pages: 1 [2] 3 4 ... 243
16  International / Français / Re: demande aide pour syntaxe envoi trame liaison serie entre 2 arduino on: August 14, 2014, 05:14:24 am
Quote
Code:
Serial.println(dht.readTemperature());

et par la magie de l'arduino j'obtient un float de type 25.50

Pas de la magie c'est normal ^^ dht.readTemperature() est un float puisque la fonction retourne un float et que print() prend en charge les float. C'est pour ça que de la même manière on peut très bien faire :

Code:
float tempDoublee=dht.readTemperature() * 2;

Et en fait j'ai compris pourquoi mon code et le dernier que tu as posté ne fonctionne pas : la prise en charge des float sur sprintf est très gourmande en flash, donc dans Arduino ce n'est tout simplement pas possible.
17  International / Le bar / Re: conseil/avis, reconversion au metier de l'electronique/electrotechnique on: August 14, 2014, 05:04:37 am
Salut,

C'est fou j'ai presque l'impression que c'est moi qui ait écrit le message xD

J'ai 27 ans, un DUT chimie et en pleine reconversion mais "douce" de mon côté : ce que je fais dans mon actuelle boîte me plait pas mal, je répare/conçois les appareils de mon laboratoire. Mais comme j'ai des chefs de plus en plus cons, je mets mes services à contribution en dehors pour ma pomme smiley-grin

Donc en plus maintenant je fais de la conception de systèmes à la demande. Donc ton idée est loin d'être saugrenue, maintenant moi j'ai vraiment choisi ce que je veux faire, pas dit que repartir dans un BTS pour retrouver un job soit le bon plan puisque tu risques te retrouver un job qui va te dégoutté ...
18  International / Français / Re: Type de condensateurs on: August 02, 2014, 10:40:01 am
Ceux qui perdent surtout sont les chimiques, les non-polarisés plastiques bougent très peu, et même s'ils perdaient 50% de leur capacité (cas hautement improbable), si tu as bien dimensionné ton RC, ça ne changera en rien les perf smiley-wink
19  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
20  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
21  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)
22  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);
23  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 ?
24  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);
25  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 ...
26  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)
27  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.
28  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)
29  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
30  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()
Pages: 1 [2] 3 4 ... 243