Loading...
  Show Posts
Pages: 1 ... 246 247 [248] 249 250 ... 291
3706  International / Français / Re: Question sur INCLUDE on: November 01, 2011, 04:59:10 am
Bonjour,

Alors au choix :

Soit tu fait autant de .pde qu'il te faut (dans le même dossier), à la compilation il seront tous réunis en un seule "gros" .pde, attention les variables "globals" doivent être déclaré dans le .pde principal (celui portant le nom du dossier du sketch).
-> permet de faire des sous fonctions rélié matériellement au reste des .pde sans ce casser la tête, soit tu crée les .pde à la main sous tu ouvre un nouvel onglet avec la petite fléche sur la droite de l'ide et tu rentre lenomdetonpde.pde

Soit tu fait des .h et .cpp, les .cpp doivent ce trouvé IMPÉRATIVEMENT dans le même dossier que le sketch principal pour être compilé, il seront compilé séparément en .o, donc chaque cpp doit être indépendant au niveau des variables, fonctions, ... sinon au moment de la compilation il y aura une erreur de lien.
Pour utiliser un .cpp, il faut crée un .h contenant les prototypes des fonctions du .cpp car les .cpp ne sont pas "lu" par l'ide arduino pour générer automatique les prototypes, de plus pour utiliser des fonctions "arduino" dans un cpp il faut ajouter #include <WProgram.h>.
Pour éviter les conflits de déclaration de fonctions il faut aussi faire un "include guard" sur chaque .h comme ceci :
Code:
#ifndef nomdufichier_h
#define nomdufichier_h
// les prototypes de fonctions
#endif

D'un point de vu général,
- pour les inclusions de librairies "classique" :
Code:
#include <nomdelalibrairie.h> // bien noter l'utilisation de <>
- pour les inclusions de header (.h) local  :
Code:
#include "nomduheader.h" // bien noter l'utilisation de ""


Personnellement je te conseille de découper ton code en fonction puis de les placer dans des pde, l'ide arduino s'occupera du reste smiley-wink
3707  International / Français / Re: [1er Projet] Horloge Pong modifié on: November 01, 2011, 04:41:30 am
for(x=1;x<sizeof(STRING1);x++) {

heuu,  sizeof ?? je pense que tu devrais plutot utiliser strlen()
Je dirai même :
Code:
for(x = 1 ; x < strlen(STRING1) + 1 ; x++)
(vu qu'il commence à x=1)
3708  International / Français / Re: [Projet] Horloge qui pue on: October 31, 2011, 01:52:10 pm
Par "fade", j'entends qui s'allume progressivement et s'éteint de la même manière smiley A moins que tu voulais faire allusion au bleu, le fromage smiley-grin (Perso, j'ai mis une LED bleue par pur hasard ^^).
J'était pas parti sur le jeu de mot roquefort <> bleu smiley-sweat, c'est juste qu'il y a une led bleu, donc c'est forcément un projet intéressant.
Les led bleu, sa rox smiley-cool

Je n'ai pas utilisé de RTC car c'est seulement un projet pour une nuit, et qui pour l'occasion me permettra de connaitre la précision de la fonction millis() sur une durée plus importante.
La précision de millis, +-100% smiley-sweat si tu veux faire dans la précision il faut plutot utiliser la librairie time du playground.

J'ai galéré à faire partir l'odeur du roquefort dans la boite.
Je vois bien la carte arduino après une nuit dedans smiley-razz hummm la bonne odeur qui sort du four de la boite ^^
3709  International / Français / Re: [Projet] Horloge qui pue on: October 31, 2011, 01:06:38 pm
J'aime le soin tout particulier apporté au choix du boitier smiley-mr-green

Sinon je plussoie chimere322, un module RTC aurait était bien plus précis ...
... mais qu'importe il y a une led bleu qui fade \o/ IT'S TOTALY AWESOME !


3710  International / Français / Re: Remplacer Potentiomètre LCD 16x2 on: October 31, 2011, 12:53:27 pm
Tant pis, c'est surtout en terme de place que le potentio me dérange mais je vais faire avec smiley-wink

Il y a des micro-potentiomètres, qui font 8mm*8mm smiley
Sinon dieu a aussi inventé la résistance smiley-mr-green
3711  International / Français / Re: Remplacer Potentiomètre LCD 16x2 on: October 31, 2011, 11:51:27 am
le lien fourni par skywodd est neanmoins intéressant (pour cette spécificité) c'est quelque part un DA du "pauvre"  smiley-mr-green
smiley-kiss Pourquoi "du pauvre", avec un filtre RC bien calculé j'arrive à générer un signal "pas trop mal" avec une résolution de 8bit, on peut même jouer de la musique avec ... alors "du pauvre", disons plutot "du mec qui veut pas un DAC" smiley-cool

(Ps: le calcul est justement dans le "guide arduino">"liens utiles" smiley-wink)
3712  International / Français / Re: Remplacer Potentiomètre LCD 16x2 on: October 31, 2011, 06:48:46 am
Bonjour,

Branche une sortie pwm sur la broche "Vo" de ton lcd avec un condensateur de 470uF entre Vo et GND et normalement tu devrait pouvoir contrôler le contraste par pwm.

Edit: 470uF c'est selon la vitesse du signal pwm, 100uF voir juste 10uF devrait suffire.

Pour plus d'info et un schéma plus détaillé :
http://pcbheaven.com/circuitpages/PWM_LCD_Contrast_Control/
3713  International / Français / Re: [Tests] Temps pour faire changer d'état une pin (niveau Haut/Bas) on: October 31, 2011, 05:42:18 am
un appel de fonction delay() prendrait alors 12 octets (6 word instructions?), donc la fonction delay() prendrait 178 octets.
Configuration du timer0 + gestion de l'incrémentation en interne + divers modif/ajout fait au cours du temps, etc ...

Par ailleurs, (car du coup, je m'intéresse aux pertes de l'arduino core), quand on regarde de près Wiring.c, on voit que timer0 est largement sollicité pour déclencher le compteur pour millis() et micros() qui servent de base à la fonction delay(). Etant donné la trop faible précision annoncée pour ces fonctions, les cli() et les attouchements à SREG... ça donne envie de tout virer, pour écrire sa propre fonction delay().
Ou utiliser la fonction _delays_ms smiley-wink
Il existe un "core avr", je ne me rappelle plus le nom mais il s'agissait d'une couche d'abstraction matériel "arduino like" optimisé à mort ...
Edit: La voici : http://www.makehackvoid.com/project/MHVLib

Je comprends de mieux en mieux pourquoi plus on utilise les fonctions core arduino, plus on perd en précision... Ca donne à réfléchir, car moi, je n'utilise jamais directement millis() ou micros(), et j'aimerais bien utiliser le timer0 de temps en temps pour autre chose.
Le but du core arduino c'est pas d'être précis mais d'être facile à utiliser smiley-wink
Si tu veux vraiment tout optimiser, passe sur de l'assembleur mais dans ce cas tu n'est plus du tout dans l'optique arduino, mais dans l'optique dev de production.
3714  International / Français / Re: librairie bloque le lancement du prog arduino linux [Résolu] on: October 31, 2011, 05:31:33 am
pour info, j'ai la version arduino 0022-maverick1, celle inclue dans les dépots.
arg! version en provenance des dépots ubuntu, j'ai toujours eu des problèmes avec ...

Quand on est sous linux il est préférable de faire son installation soi même en téléchargeant le tar.gz directement depuis arduino.cc et en installant les dépendances à la main, déja que la version linux est pas tiptop alors si c'est celle des dépots smiley-confuse
3715  International / Français / Re: librairie bloque le lancement du prog arduino linux on: October 30, 2011, 01:54:16 pm
c'est bien la lib qui est en cause.
3 essais infructueux avec le même lien.
j'ai dl sur un autre lien Mirf 1.0 mais là autre problème, pour compiler des exemples
#include Spi.h
il ne trouve pas Spi.h car le bon est SPI.h, bonjour pour modifier tous les spi dans les fichiers.
Normal Spi.h est l'ancienne version de la lib SPI arduino, renommer les Spi.h en SPI.h ne servira à rien vu que les fonctions ont changé entre ces deux versions smiley-wink

C'est trés étrange quand même, j'ai (re)téléchargé à l'instant le zip, installé le tout et compilé l'exemple ping_client sans aucun problèmes.
Si cela peut t'aider je te joint l'ancienne librairie Spi.h, garde aussi la nouvelle version sinon tu aura des problèmes smiley-wink
3716  International / Français / Re: reveil / batterie de secours on: October 30, 2011, 09:15:32 am
Quote
De plus il te faudra une résistance de 100ohm en série pour éviter de flinguer ton arduino (voir même un petit transistor et une diode genre BC547 et 1n4007 + résistance de 1K)

OK, comment tu trouves ce 100 ? et ces quoi ces transistors ? et autres composants ? comment on les branche, et à quoi servent ils ?
100ohms c'est la valeur "classique" de protection pour un speaker 8ohms @0.5W
cf : http://www.arduino.cc/en/Tutorial/Tone
Le problème c'est que si tu fait un réveil c'est pour qu'il te réveille, donc qu'il fasse du bruit.
Avec un petit montage résistance + transistor + diode de roue libre, tu donne beaucoup plus de punch au son smiley-wink
Le schémas est le même que celui d'un relay mais avec un haut parleur à la place :
http://www.arduino.cc/playground/uploads/Main/relays.pdf

Quote
Ou tu fait un mixe alimentation avec boost 5v et tu reprend la broche "enable" sur le +5v de ton alim secteur avec une résistance de tirage au 0v, quand tu a du secteur le 5v désactive le "booster" 5v et c'est le secteur uniquement qui alimente le circuit sinon le booster pompe sur la batterie pour générer du 5v.

Tu veux dire que je branches le + des piles avec celui du secteur (la sortie du transfo biensur smiley-grin suis pas fou) et parreil pour les - ? et que les piles ne seront utilisées que en cas de coupure ??? :O
Non, en gros tu fait deux alim, une 5v secteur "normal" et une autre avec un circuit "boost" (en gros avec 2 piles lr6 (=3v) il te sort du 5v), les circuits de "boost" ont une broche "enable" si elle est à 0v le circuit délivre une tension, sinon il ne consomme/génère "rien", donc si tu a une coupure d'alim secteur et que le 5v secteur est cablé sur le "enable" du boost (celle ci étant tiré via une résistance au 0v) il va se mettre quasi instantanément en route, si en plus il y a une bon gros condensateur de 100uF entre 0v et 5v le temps que le changement secteur -> boost se fasse il comblera le "trou" de tension.

Quote
chicotore> un relais monostable ? qui reste sue le transfo qu'en cas d'alimentation de celui ci ?? J'avais meme pas pensé :s...
En cas de coupure, le relais réagi assez vite pour qu'il n'y ai pas de coupure trop "longue" ?

Bah pour moi c'est instantanée le changement d'état, après c'est a tester ^^
C'est pas du tout instantané smiley-wink c'est dans les 10/15ms pour un relay classique 5v.
cf: http://pdf1.alldatasheet.com/datasheet-pdf/view/146439/ETC1/HM4100F.html (relay classique)
3717  International / Français / Re: Interruption + DS1307 sur Adrduino Mega on: October 30, 2011, 06:58:58 am
Bonjour,

Il existe une autre librairie i2c software, normalement elle est faite pour le projet blinkM mais je l'utilise sans problème avec des pcf8574, DS1307 & co
http://code.google.com/p/blinkm-projects/source/browse/#svn%2Ftrunk%2Fblinkm_examples%2Farduino%2FBlinkMSoftI2CDemo
3718  International / Français / Re: Aide pour minuterie on: October 30, 2011, 06:56:13 am
Bonjour,

A vouloir mélanger deux versions différentes dans un même code il ne peut y avoir que des erreurs smiley-wink
comme le etat=false; non commenté en fin de code qui bloque ton if par exemple.

Code:
#include <LiquidCrystal.h>

int intervalAllumage = 10000;
int intervalExctinction = 5000;
int etat; // mettre HIGH/LOW au lieu de true/false c'est plus simple de (re)lire sont code par la suite
long previousMillis;
//long previousMillis2; // non utilisé
LiquidCrystal lcd(47, 48, 49, 50, 51, 52);

void setup()
{
  pinMode(13, OUTPUT);
  pinMode(27, OUTPUT);
  lcd.begin(20,4); // il ne manquerai pas un morceau ? aucun lcd.print nulle part !?
}

void loop()
{
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > (intervalAllumage + intervalExctinction)) {
    previousMillis = currentMillis;   
    etat = HIGH;
  }
  else
    if (currentMillis - previousMillis < intervalAllumage)
      etat = LOW;

  digitalWrite(13, etat);
}
3719  International / Français / Re: USB et standalone on: October 30, 2011, 06:50:29 am
Bonjour,

Quote
J'avais lu que pour souder les TSSOP et autres miniatures, une technique était de souder comme un sagouin, quitte à relier les pattes avec la soudure, puis de nettoyer à la tresse. je pense que ça peut être une bonne alternative plus rapide, car il doit forcément rester de la soudure sous les pattes pour faire le bon contact...


J'ai aussi lu cela, mais quand j'ai commencé à étendre la soudure sur les pads, j'ai trouvé que ma tresse à dessouder n'était pas très efficace (trop vieille ? ). J'ai donc essayé de mettre le moins de soudure possible. C'est effectivement très peu mais, vu la taille des pads et des pattes, c'est largement suffisant.
C'est la technique que j'utilise pour souder des cms et des connecteurs miniatures.
Le truc c'est de pouvoir gérer la température du fer à souder, et d'avoir de la soudure "sn60 pb40" en 5/10 avec une bonne tresse à dessouder 2mm.
La température doit être juste au dessus du point de fusion de la soudure, il faut faire un bon gros tas sur toute les pattes, puis avec la tresse à dessouder enlever le trop plein petit à petit mais avec une température beaucoup plus haute.

Si c'est bien fait sa donne un résultat quasi "pro" (ici un pcf8575) :
http://skyduino.files.wordpress.com/2011/06/p1020819.jpg
http://skyduino.files.wordpress.com/2011/07/p1020912.jpg
http://skyduino.files.wordpress.com/2011/07/p1020909.jpg
(Ou sinon un autre truc que j'utilise, c'est la soudure à l'argent en seringue et une bonne poêle plate smiley-mr-green)
3720  International / Français / Re: reveil / batterie de secours on: October 30, 2011, 06:22:03 am
Bonjour,

Je pense que certains produits de ta liste sont pas vraiment adapté pour ce que tu veux faire smiley-wink

L'afficheur 7seg série ok pourquoi pas (mais jaune c'est pas un peu gore smiley-mr-green ? (bleu c'est classe smiley-cool)).

le keypad ok (ps: il faudra bien penser aux 4 résistances de pull-up smiley-wink hardware ou software).
le module rtc ok.

l'arduino pro ... pour ton réveil un arduino pro mini ne serait plus adapté niveau taille/prix ?
Et prendre du 3v3 avec des modules rtc, 7seg en 5v c'est pas top smiley-wink

le speaker ... définitivement trop petit, 0.25w c'est vraiment pas grand chose ...
0.5w c'est déja plus bruyant http://www.watterott.com/en/Speaker-05W-8Ohm
De plus il te faudra une résistance de 100ohm en série pour éviter de flinguer ton arduino (voir même un petit transistor et une diode genre BC547 et 1n4007 + résistance de 1K) smiley-wink

les stackables headers ... si tu prend aucunes shields c'est pas vraiment utile, des fils directement c'est pareil smiley-wink

Pour ton problème de sélection d'alim, deux choix soit tu utilise un module pour batterie avec "bost" tout prêt soit tu prend une board arduino comme celle d'olimex qui on un chargeur/sélecteur d'alimentation automatique.
Ou tu fait un mixe alimentation avec boost 5v et tu reprend la broche "enable" sur le +5v de ton alim secteur avec une résistance de tirage au 0v, quand tu a du secteur le 5v désactive le "booster" 5v et c'est le secteur uniquement qui alimente le circuit sinon le booster pompe sur la batterie pour générer du 5v.
Pages: 1 ... 246 247 [248] 249 250 ... 291