Show Posts
Pages: 1 ... 99 100 [101] 102 103 ... 230
1501  International / Français / Re: réglage de l'heure sur DS1307 on: July 31, 2013, 02:01:25 pm
Quote
Il faut commencer par comprendre la différence entre :
Registre = 0x40
et
Registre |= 0x40
L'écriture Registre |= 0x40 est concise mais pas toujours bien comprise
Registre |= 0x40 est équivalent à Registre = Registre | 0x40

Quote
Pour faire passer un bit de 1 vers 0 il ne faut plus utiliser un "OU" mais un "ET" mais là c'est fini pour moi -> direction le site du zéro.
pour faire passer un bit à zéro il faut faire:
Machin &= ~truc2 ;

On fait un ET avec le complément du bit que l'on veut effacer
soit:
#define truc2 0b00000010;
~truc est égale à 0b11111101
et le ET entre Machin et ~truc2 met bien le bit en question à 0.
1502  International / Français / Re: Communication impossible avec une Arduino UNO on: July 31, 2013, 10:34:37 am
Tu utilises le terminal de l'IDE ou un terminal externe?
Parce que si c'est un terminal externe il ne faut pas oublier de fermer l'IDE avant pour qu'il libère le port COM.
1503  International / Français / Re: Carte de commande 10A on: July 31, 2013, 08:45:54 am
N'oublier pas que si la pin 1 est alimenté , la pin 2 est LOW cad que c'est la masse non ?
Le GND est une référence des potentiels. La destination évalue le niveau sur ses entrées par rapport à cette référence.
Dans ton schéma, les transistors sont passants si leur tension émetteur-base est supérieur à un seuil. Or les émetteurs sont au GND donc il faut bien que ce GND soit partagé entre l'arduino et ta carte de puissance.
1504  International / Français / Re: Tempo temps reel double avec millis() on: July 31, 2013, 08:40:58 am
Quote
- si j'appuie sur n'importe quel bouton cela ne fait rien
- si bt 1 et bt2 sont activés ==> action1 activé puis action2 s'active apres 2sec. le tout s’arrête dès qu'un bouton est relâché
- si bt 1 et bt3 sont activés ==> action1 activé puis action3 s'active apres 3.5sec. le tout s'arrete dès qu'un bouton est relâché
Les rebonds peuvent faire croire au relâché d'un des boutons.
1505  International / Français / Re: Tempo temps reel double avec millis() on: July 31, 2013, 06:49:11 am
Code:
        if(currentMillis_1 - previousMillis_1 > delay_1)
à remplacer par
Code:
        if(currentMillis_1 > (previousMillis_1 + delay_1))
pour prendre en compte le problème du débordement de millis au bout d'un moment

Code:
long previousMillis_1 = 0;
long previousMillis_2 = 0;
à remplacer par
Code:
unsigned long previousMillis_1 = 0;
unsigned long previousMillis_2 = 0;
car millis() retourne un unsigned long et non un long

Comme on ne sait pas vraiment quel comportement tu attends lors de l'appui sur les boutons on ne peut pas t'aider beaucoup. Un petit organigramme, une explication claire de l'attendu serait la bien venue.

Par contre on peut déjà dire que comme tu n'as aucun code qui prenne en compte le rebond des boutons tu peux avoir des transitions successives qui induisent un comportement inattendu.

Ensuite les if.. else ... imbriqués ne sont pas toujours très sûr. Une petite machine à état est souvent plus clair dans son fonctionnement.
1506  International / Français / Re: problème avec un Servo (débutant) on: July 31, 2013, 05:55:11 am
Merci à Bernardino et fdufnews pour vos explications

alors dans l'appli arduino j'ai mis en commentaire le Servo::refresh(); du coup il me upload sans problème le code.
c'est après que ça coince, j'ouvre le serial monitor et envois s120 ou n'importe quel autres données mais il ne se passe rien  smiley-cry
j'ai essayé plusieurs branchement du servo dans d'autres analog in mais rien non plus

ou est-ce que ça coincerait ?

Merci d'avance
Je pense que ça coince dans la doc que tu n'as pas lue et qui se trouve dans le lien que tu as donnée au début.
Il est expliqué que les commandes sont envoyées avec angle suivi de s.
Donc pour pointer à 0 tu envoies 0s pour pointer à 90° tu envoies 90s
Si tu regardes un peu le code de l'arduino tu vois que le petit interpréteur qui est dans loop comprend:
    - les chiffres de 0 à 9 qu'il se contente de concaténer pour former un nombre (il n'y a d'ailleurs pas de contrôle sur la valeur)
    - les lettres s et w qui envoient la valeur précédemment reçu au servo
    - la lettre a qui attache le servo
    - la lettre d qui détache le servo
1507  International / Français / Re: réglage de l'heure sur DS1307 on: July 31, 2013, 05:45:05 am
Bjr,
Le bit de poids fort "Msb" additionné(corriger moi si je me trompe) au bit de poids faible "Lsb" avec un opérateur logique "Ou"
c'est simple je prend le chiffre 42 : 40 et le bit de poids fort et  2 le bit de poids faible.
J'ai l'impression d'être dans une machine à laver et que l'on mélange le tout.
Je suppose que 42 et 40 sont exprimés en base 10 et les termes LSB et MSB sont propres à la base 2. Mais l'esprit y ai  smiley-mr-green

Faudrait voir à ne pas mélanger bit et byte (bit et octet en français)
bit est utilisé en numération binaire
byte est utilisé en numération hexadécimale.

Maintenant MSB (Most Significant Bit) et LSB (Least Significant Bit) sont préférentiellement utilisés en binaire pour désigner le bit de poids le plus faible et le bit de poids le plus fort.
Cependant on trouve quelque fois dans la littérature MSB et LSB dans la numération hexadécimal. Il faut alors comprendre Most Significant Byte et Least Significant Byte que l'on traduirait pas Quartet de poids fort et Quartet de poids faible.
En fait cela dépend du contexte.

Ce fil de discussion montre par ailleurs qu'il est préférable de définir des constantes avec des define pour manipuler des registres plutôt que mettre directement des valeurs cela permet au moins de comprendre ce qu'a voulu faire le codeur.

Code:
#define 12h_MODE 0x40
#define AM_PM 0x20
.....

    registre |= 12h_MODE; // passe la RTC en mode 12h
et quand même plus clair que
Code:
registre |=0x40;
et cela permet de détecter plus facilement les erreurs
1508  International / Français / Re: problème avec un Servo (débutant) on: July 31, 2013, 01:50:01 am
La librairie utilisée par le programme que tu as copié utilise une librairie servo différente de celle qui est livrée avec l'IDE arduino (voir le lien au début de la page que tu cites).
Je pense que tu peux mettre cette ligne en commentaire ou la supprimer purement et simplement. Cette fonction n'est pas nécessaire avec le librairie standard.
1509  International / Français / Re: conversion avec dtostrf () on: July 31, 2013, 01:43:38 am
Eh eh !! on est pas devins.
Si tu ne donnes pas le code en question ni le schéma ça va pas être facile de t'aider.
1510  International / Français / Re: Carte de commande 10A on: July 31, 2013, 01:41:16 am
En fait le bornier B1 devrait avoir un troisième point qui amènerait la masse vers l'arduino.
1511  International / Français / Re: réglage de l'heure sur DS1307 on: July 30, 2013, 03:50:27 am
Bonjour
Je pense qu'il y a une erreur dans le livre de C. Tavernier.
Au lieu de 0x80|0x12 ce devrait être 0x40|0x12; 0x40 met le bit 6 en 1 d'où heure en 24h (au lieu de am, pm 12h)
A+

Non petite erreur d'interprétation de la doc:
Bit 6 of the hours register is defined as the 12-hour or 24-hour mode-select bit. When high, the 12-hour mode is selected. I

Lorsque le bit est à 1 on passe en mode 12h.
Il faut purement et simplement supprimer ce 0x80.
1512  International / Français / Re: probleme utilisation port série de l'UNO on: July 30, 2013, 03:44:28 am
Quote
les bornes D0,D1 et GND , reliées à un port com de mon pc
Electriquement parlant ces signaux ne peuvent pas coucher ensemble:
    - D0,D1 : niveau logique 0, +5V
    - port com: niveau RS232 de +/-3V jusqu'à +/-15V selon la norme

Il faut utiliser un MAX232 ou équivalent pour adapter l'interface électrique entre les 2 équipements.
1513  International / Français / Re: Problème de syntaxe on: July 30, 2013, 03:38:32 am
le backslash est utilisé pour indiquer un caractère spécial comme '\n' pour le retour chariot ou '\t' pour la tabulation. Lorsqu'on désire utiliser le backslash comme caractère il faut le doubler '\\'
1514  International / Français / Re: Lipo Rider USB Charger Power Booster on: July 30, 2013, 01:48:19 am
Quote
1. Quelqu'un connais ce produit ?
2. Suffit il pour alimenter l'arduino + les moteurs ?
3. Eceque c'est une bonne idée de faire tout ça ?
1) oui
2) je ne le pense pas. Le liPo rider ne délivre que 500mA ce qui me parait un peut limite pour des moteurs.
3) pourquoi pas. L'exercice est intéressant.

Il faudrait que tu fasse quelques mesures sur tes moteurs pour savoir de combien de courant ils ont besoin. Surtout au démarrage, mesure de la résistance du bobinage du moteur pour connaitre le courant de court-circuit.

Si tes moteurs ne sont pas trop gourmands il y a le lipo rider pro qui est plus performant (1A au lieu de 500mA).

Maintenant il ne faut pas trop t'illusionner. Ton panneau délivre 270mA donc pour charger une batterie de 2200mAh il te faudra une dizaine d'heures de plein soleil.
1515  International / Français / Re: réglage de l'heure sur DS1307 on: July 29, 2013, 02:14:42 pm
Je crois qu'il va falloir reprendre les bases (sans jeux de mot) cours binaire et hexadécimal
Pages: 1 ... 99 100 [101] 102 103 ... 230