Aller au contenu


Maxuino

Inscrit(e) (le) 24 févr. 2013
Déconnecté Dernière activité mai 31 2013 09:01
-----

Sujets que j'ai initiés

Fabrication shield arduino

04 mai 2013 - 10:38

Bonjour,
je me bricole une petite extension pour mon arduino UNO.

j'ai une question de base :

les broches "analog in" sont des entrées analogiques comme le nom l'indique. On ne peut donc pas connecté de LEDs par exemple dessus... Les fonction "digital read" et "digital write" ne sont donc pas utilisable ?
Que pourrais-je connecter dessus à part un potentiomètre ?

Si je met un bouton poussoir en entrée analogique, je pourrais lire son état avec la fonction "analoRead". Du coup la valeur retournée sera entre 0 ou 1023, mais au niveau code ça risque de poser quelques problème non??

Juste besoin de ces quelques précisions/idées avant de lancer la gravure du circuit :P

Merci ;)

edit : les entrées numériques 0 et 1 correspondent également au RX et TX. Sont elles utilisables quand même ? Y a - t - il des précautions à prendre ?

Capteur température

27 avril 2013 - 04:05

Bonjour,

Je me lance dans un mini projet pour commencer :
un thermomètre qui affiche la température sur des afficheurs 7 segments

J'ai commencé la prise en main du capteur qui est un DS1820 (pas DS18B20 ni DS18S20 mais bien un DS1820 !).

J'ai récupéré sur le net un programme (j'ai encore un peu de mal à coder les arduino mais ça va venir !) que voici :


#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2

void setup(void) {
Serial.begin(9600);
}

void loop(void) {
float temperature = getTemp();
Serial.println(temperature);

delay(100); //just here to slow down the output so it is easier to read

}


float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}

if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad


for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}

ds.reset_search();

byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;

return TemperatureSum;

}

Vous l'aurez compris, le programme renvoie la température sur la liaison série en permanence.
La température lue devrait avoisiner les 20°C mais j'obtiens 2.75°C
En revanche, la valeur varie bien quand je chauffe ou refroidis le capteur.
J'utilise une résistance de pull-up de 4.8k environ formé à partir de deux résistances de 10k en parallèles.

Si quelqu'un a une idée, elle est la bienvenue !

Merci à vous et bon week end malgré le temps... Parfait pour faire de l'électronique :bye:/>

Maxuino

24 février 2013 - 06:31

Salut à tous, :crigon_03:
je me présente je m'appelle Maxime j'ai 20 ans j'aime l'électronique, la programmation.
J'ai des connaissances en PIC mais je voulais me mettre au carte arduino. J'en ai acheté une récemment : la arduino uno.
J'espère réussir à faire des choses sympas avec.
Voilà, bonne soirée à tous ! ;-)