Pages: [1] 2   Go Down
Author Topic: Besoins d'infos sur les capacités de Arduino Uno  (Read 1991 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous !

Possesseur d'une arduino uno depuis hier, je cherche à connaitre ses limites.

En effet, j'ai constaté que la mémoire interne était très petite, j'ai donc peur qu'un gros programme de gestion climatique ne tienne pas dans cette carte. Selon votre expérience à quel moment avez vous du passé au modèle MEGA ?

En gros je dois pouvoir contrôler 5 capteurs et agir sur une 5 actionneurs + un affichage LCD 4 lignes + Stockage sur carte SD.

Est-ce viable avec la UNO ?

Dernière question, je viens d'achter un capteur d'humidité qui contrairement à ceux de température ne possède que 2 pattes, comment le relier à l'entrer analogique ?

Merci d'avance pour votre aide je suis un peux perdu...

Bon weekend
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 29
Posts: 3174
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Avant que tu arrives à remplir la mémoire de ta uno, tu vas pouvoir en coder des lignes ....

La mega c'est vraiment quand tu veux pas faire de multiplexage ou bien que tu as besoin de véritables port série supplémentaires.

Logiquement tu dois pouvoir tout connecter, après tout dépend des capteur, si c'est des capteurs de températures, il y en a en i2c par exemple et tu peux de facto en connecter quasiment autant que tu veux, pareil pour le LCD.

Les capteur d'humidité c'est un peu spécial, il sont majoritairement capacitif (les autres sont résistifs), mais il faut que tu vérifies. Si c'est capacitif, il faut, soit que tu utilises des montages de mesure de capacité.
Logged


France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

En effet, j'ai constaté que la mémoire interne était très petite, j'ai donc peur qu'un gros programme de gestion climatique ne tienne pas dans cette carte. Selon votre expérience à quel moment avez vous du passé au modèle MEGA ?
Les quelques rares programmes que j'ai conçu qui ne passaient pas sur une carte UNO était soit extrêmement gourmand en entrées / sorties, soit des applications graphiques qui demandez énormément de code.

Je ne passe sur ma mega2560 que lorsque j'ai un programme nécessitant plus de broches que l'arduino UNO ne possède.
Ou si mon programme (pendant la phase de conception) se rapproche dangereusement de la limite des 30Ko de flash (il faut déjà le vouloir pour y arriver).

En gros je dois pouvoir contrôler 5 capteurs et agir sur une 5 actionneurs + un affichage LCD 4 lignes + Stockage sur carte SD.
Est-ce viable avec la UNO ?
Si l'afficheur LCD est un afficheur série ça passera, sinon si il s'agit d'un afficheur "classique" parallèle tu manqueras de broches pour tout câbler (ou dans ce cas il faudra faire un montage à base de PCF8574 ou de 74HC595).
En tout cas ça ne sera pas un probléme concernant la mémoire disponible.

Dernière question, je viens d'acheter un capteur d'humidité qui contrairement à ceux de température ne possède que 2 pattes, comment le relier à l'entrer analogique ?
Tout dépend du modèle, quelle est sa référence ?
Si c'est un DHTxxxx -> http://www.ladyada.net/learn/sensors/dht.html
Sinon -> google -> référence du capteur + "datasheet" -> bonne lecture smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour vos réponses ça répond exactement à mes questions !

Juste une chose la arduino contient de la caféine ? car là me décrocher de mon ordi c'est comme enlever une sucette à un enfant smiley

++

Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Excusez mon ignorance mais si lorsque je rentre un programme d'une trentaine de lignes (exemples/SD/DumpFile) et que mon IDE indique : "Taille binaire du croquis : 13 128 octets (d'un max de 32 256 octets)" cela signifie bien que une fois arrivé à 13128 octets mon programme ne pourra plus évoluer nan ?!

Concernant mon capteur d'humidité il capacitif, si je me trompe pas il faut que je le branche sur une entrée analogique ? Besoin d'un résistance ?
« Last Edit: June 22, 2012, 10:05:20 pm by elriri » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Les 13128 octets correspondent à la taille de ton programme en mémoire de programme (flash). Sur la Uno il y a effectivement 32256 octets disponibles. Arrivé à cette taille, ton programme ne pourra effectivement plus évoluer.

Pour ton capteur, il faut que tu nous donnes sa référence si tu veux qu'on t'aide. Il est fort probable qu'un schéma typique d'utilisation soit donné dans sa documentation...

++
« Last Edit: June 23, 2012, 02:04:20 am by SesechXP » Logged


France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Excusez mon ignorance mais si lorsque je rentre un programme d'une trentaine de lignes (exemples/SD/DumpFile) et que mon IDE indique : "Taille binaire du croquis : 13 128 octets (d'un max de 32 256 octets)" cela signifie bien que une fois arrivé à 13128 octets mon programme ne pourra plus évoluer nan ?!
13128 octets c'est la taille de ton programme en mémoire flash.
La taille maximum (théorique) est de 32256 octets, cela signifie que tu peut encore "utiliser" 19128 octets de code (binaire) dans ton programme.
Je précise "taille théorique" pour 32256 octets car en réalité le bootloader bloque (un bug jamais résolu ...) âpres un peu plus de 29500 octets.

Ton programme occupe donc déja 50% de la mémoire flash, ce qui peut parraitre énorme, mais en réalité la librairie SD est une usine à gaz qui consomme beaucoup.
Sur tes 13128 octets, tu as environ :
- 440 octets pour les fonctions pinMode, digitalRead, ... inclut de base,
- une 100aine d'octet pour le timer de millis() / delay(),
- ~1000 octets pour Serial
- tout le reste (~11000 octets) c'est la librairie SD (qui inclut SDfatlib)

Il n'y a pas beaucoup de librairies dans le genre de SDfatlib qui consomme autant de mémoire, donc ces 50% restant laissent une bonne marge de manœuvre.
Ps: niveau ram une fois la librairie SD initialisé il reste (seulement) ~500 octets de ram disponible, donc faire attention à ça smiley-wink

Concernant mon capteur d'humidité il capacitif, si je me trompe pas il faut que je le branche sur une entrée analogique ? Besoin d'un résistance ?
Voir : http://midity.com/content/measuring-humidity-arduino
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Made in Belgium
Offline Offline
God Member
*****
Karma: 0
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Excusez mon ignorance mais si lorsque je rentre un programme d'une trentaine de lignes (exemples/SD/DumpFile)

Derrière cette trentaines de lignes se cache surement le double, triple, ..., à travers les différentes librairies ...  smiley-sweat
Logged


France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Derrière cette trentaines de lignes se cache surement le double, triple, ..., à travers les différentes librairies ...  smiley-sweat
Bien plus que ça en réalité smiley-sweat

Si j'en crois mon fidèle wc -l *.cpp *.h :
Il y a 869 lignes de code dans la librairies SD et 4248 lignes de code dans la librairies SDfatlib smiley-sweat
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok merci donc dés qu'on utilise une carte SD ça bouffe pas mal de place, bon à savoir pour peux être se tourner faire une solution sans fil pour le transfère des données voir en ethernet avec le shield adéquate...

Dernière question de débutant, les commentaires sont ils compilés avec le programme ? Je pense pas mais bon...

skywod : Il s'agit exactement de celui là, j'ai cherché pas mal de temps hier pour trouver ce schéma

Encore merci pour votre réactivé et votre aide.
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok merci donc dés qu'on utilise une carte SD ça bouffe pas mal de place, bon à savoir pour peux être se tourner faire une solution sans fil pour le transfère des données voir en ethernet avec le shield adéquate...
Tout dépend de ce que tu veut faire.
Tu peut rester sur une solution avec une carte SD en bidouillant un peu ton code
Ou tu peut aussi passer par des modules de stockage série (exemple : http://www.lextronic.fr/P2261-module-de-stockage-udrive-usd-g1.html) ou encore transmettre les info par wifi/bluetooth/RF/ethernet/...

Dernière question de débutant, les commentaires sont ils compilés avec le programme ? Je pense pas mais bon...
Non il ne sont pas compilé avec le reste du programme, tu peut en mettre autant que tu veut smiley-wink
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je profites de ce post pour poser une dernière question de noob...

Finalement pour mon projet j'ai choisi d'utiliser une Mega 2560 capable de délivrer 200mA sur ses E/S à raison de 40mA Max/E/S.

Si un de mes capteurs consomme 100mA la solution est bien de l'alimenter à partir d'une source externe ?! et non directement sur le 5V et GND de l'arduino ?!

Je pose la question car le problème à l'air d'être récurrent alors que pourtant la solution semble super simple...

Merci de m'éclairer sur ce dernier point.

Bonne fin de semaine à vous
Logged

France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1904
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Je pose la question car le problème à l'air d'être récurrent alors que pourtant la solution semble super simple
Il n'y a jamais de cas simples. Il n'y a que des cas particuliers.

Il n'est pas possible de pousser un composant dans toutes ses limites en même temps.
Exemple: un relais est spécifié 220V 5A, eh bien c'est soit 220V soit 5A mais les deux simultanément abrègent la durée de vie du relais.

La règle de base est de lire la notice des composants, attention les indications sur le site arduino sont "plus qu'optimistes" il faut aller directement sur les sites de constructeur, pour le micro le constructeur c'est la société Atmel.
En ce qui concerne le courant max par sortie, lis la spec du micro et tu verra que les 40mA ne sont pas spécifiés en service permanent, je n'insiste pas d'avantage je me lasse.

Pour le courant max possible pour ton capteur cela va dépendre du courant total et entre-autre de ce que tu consomme dans les sorties du micro, il n'y a que toi qui a la réponse.
Il n'y a jamais de cas simples, il n'y a que des cas particuliers.

A mon avis personnel autant on peut jouer avec le feu avec une carte UNO où il est facile de changer le micro si on l'a cramé autant avec une Mega je marcherais sur des oeufs car avec son boîtier cms: micro cramé = carte à la poubelle.

Edit : j'ai peut être été trop restrictif sur la fin de mes propos : ce que je voulais dire c'est qu'entre tirer 40mA directement sur plusieurs sorties du micro je préfère de loin ajouter un transistor externe entre la sortie du micro et la charge. Toute la puissance sera supportée par le transistor externe qui est facilement inter changeable.
« Last Edit: July 05, 2012, 05:40:46 am by 68tjs » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 112
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En faite justement je souhaite commander un module avec 8 Relais comme celui présent en pièce jointe.

Dans ma petite tête en gros je branche sur cette carte une alim externe 5V (avec GND commun a l'arduino) et ensuite je branche chaque file de commande à une E/S de mon arduino pour contrôler les relais indépendamment.

Le fabricant indique une consommation de 20mA/ Relais actif, mais ces 20mA sont tiré de mon Alim externe n'est-ce pas ? Aucun risque donc de cramer mon arduino en activant les 8 relais simultanément ?!





* 20120116100848_81811.jpg (55.92 KB, 600x434 - viewed 8 times.)
Logged

France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1904
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Les 20mA qu'indique le fabricant correspondent à la commande du relais, ils parcourent le bobinage dans le relais et servent à créer le champ magnétique qui fera bouger les contacts : c'est donc toi qui les fournis :
- soit directement par une sortie arduino  --> aîe le micro est cramé --> voir nota
- soit en passant par l'intermédiaire d'un transistor et dans ce cas c'est l'alim qui les fournis.

Nota le cas des relais est bien particulier comme tout ce qui touche au magnétisme : il faut prendre des précautions (très simples) sinon on crame tout.
Un dessin vaut mieux qu'un long discours voir dans le sous forum  Cours et Tuto
http://arduino.cc/forum/index.php/topic,100727.msg756494.html#msg756494

Voir le document pdf, pour aller un peu plus loin dans les transistor consulter le document odt dans le premier message.
Logged

Pages: [1] 2   Go Up
Jump to: