Canalblog
Suivre ce blog Administration + Créer mon blog

Ma découverte de Arduino

29 décembre 2017

Sonar réalisation 3

Le modèle est consu pour être porté à la taille et avec des notes séparées par deux degrés afin de rester dans sa plage d'audition.

La photo :

428

Le programme :

/*
 * Code pour Manu pour un capteur à ultrasons HC-SR04.
 le son est sur le pin 7
 */

/* Constantes pour les broches */
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3;    // Broche ECHO
 
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s

/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;

/** Fonction setup() */
void setup() {
   
  /* Initialise le port série */
  Serial.begin(115200);
   
  /* Initialise les broches */
  pinMode(TRIGGER_PIN, OUTPUT);
  digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
  pinMode(ECHO_PIN, INPUT);
}
 
/** Fonction loop() */
void loop() {
 
  /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);
 
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
  long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
   
  /* 3. Calcul la distance à partir du temps mesuré */
  float distance_mm = measure / 2.0 * SOUND_SPEED;
  long cm = distance_mm / 10;
   
   
  /* Affiche les résultats en mm, cm et m */
  Serial.print(F("Distance: "));
  Serial.print(distance_mm);
  Serial.print(F("mm ("));
  Serial.print(cm);
  Serial.print(F("cm, "));
  Serial.print(distance_mm / 1000.0, 2);
  Serial.println(F("m)"));
   
   
   
  if (cm>250 && cm<300)
{
  tone(7,523,150);
 
  }
   if (cm>200 && cm<250)
{
  tone(7,659,150);
 
  }
 
  if (cm>150 && cm<200)
{
  tone(7,784,150);
 
  }
 if (cm>100 && cm<150)
{
  tone(7,988,150);
 
  }
   
  if (cm>30 && cm<100)
{
  tone(7,1175,150);
 
  }
     
   
  /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
  delay(75);
}

Publicité
Publicité
23 août 2017

Projets à étudier

 

 

Smart Garden

Try smart gardening at your home or office. By Ashphiar Raihan.

https://create.arduino.cc

 

22 août 2017

Sonar version 2

Cette version est destinée à être utilisée sur la main et les connections sont soudées.

L1040382g

 

L1040391g6

 

8 août 2017

Sonar pour non-voyant

L'application est conçue pour détecter les objets en hauteur (panneaux de signalisation, ...).

sonar1-1

sonar1b-2

- Carte arduino leonardo

- Capteur ultrason HC-SR 04

- Buzzer KY-012 ou Toogoo R

Voici le code utilisé :

/*
 * Code pour eva pour un capteur à ultrasons HC-SR04.
 le son est sur le pin 8
 */

/* Constantes pour les broches */
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3;    // Broche ECHO
 
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s

/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;

/** Fonction setup() */
void setup() {
   
  /* Initialise le port série */
  Serial.begin(115200);
   
  /* Initialise les broches */
  pinMode(TRIGGER_PIN, OUTPUT);
  digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
  pinMode(ECHO_PIN, INPUT);
}
 
/** Fonction loop() */
void loop() {
 
  /* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);
 
  /* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
  long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
   
  /* 3. Calcul la distance à partir du temps mesuré */
  float distance_mm = measure / 2.0 * SOUND_SPEED;
  long cm = distance_mm / 10;
   
   
  /* Affiche les résultats en mm, cm et m */
  Serial.print(F("Distance: "));
  Serial.print(distance_mm);
  Serial.print(F("mm ("));
  Serial.print(cm);
  Serial.print(F("cm, "));
  Serial.print(distance_mm / 1000.0, 2);
  Serial.println(F("m)"));
   
   
   
  if (cm>250 && cm<300)
{
  tone(8,220,200);
 
  }
   if (cm>200 && cm<250)
{
  tone(8,440,200);
 
  }
 
  if (cm>150 && cm<200)
{
  tone(8,880,200);
 
  }
 if (cm>100 && cm<150)
{
  tone(8,1760,200);
 
  }
   
  if (cm>30 && cm<100)
{
  tone(8,3520,200);
 
  }
     
   
  /* Délai d'attente pour éviter d'afficher trop de résultats à la seconde */
  delay(100);
}

 

8 janvier 2013

Mesure d'une tension.

Publicité
Publicité
8 janvier 2013

Commande d'éclairage avec Arduino.

LDR_base_janv07

/* Photocell simple commande.

Connecter la photocell au 5V, l'autre au Analog 0.
alors connecter 10K resistance de Analog 0 à la terre.
Connecter l'élément à commander entre la sortie 11 et la terre
*/

int photocellPin = 0; // la cellule et 10K sont connectés à a0
int photocellReading; // la lecture de la tension
int led = 11; // Pin 11 a la commande connectée

void setup(void) {
// les données seront envoyées vers un moniteur série
Serial.begin(9600);
pinMode(led, OUTPUT);
}

void loop(void) {
photocellReading = analogRead(photocellPin);


Serial.print("Analog reading = ");
Serial.print(photocellReading); // écriture de la valeur lue

// nous avons déterminé quelques seuils.
if (photocellReading < 10) {
digitalWrite(led, HIGH); // commande on
Serial.println(" - Dark");
} else if (photocellReading < 200) {
digitalWrite(led, HIGH); // commande on
Serial.println(" - Dim");
} else if (photocellReading < 500) {
digitalWrite(led, HIGH); // commande on
Serial.println(" - Light");
} else if (photocellReading < 800) {
digitalWrite(led, LOW); // commande off
Serial.println(" - Bright");
} else {
digitalWrite(led, LOW); // commande off
Serial.println(" - Very bright");
}
delay(2000);
}

7 janvier 2013

Mesurer la lumière avec LDR

La caractéristique spectrale d'une cellule cds est de ce type :

cdsspectrum.gif

Voici la variation de résistance : 

graph.gif

 

6 janvier 2013

Mesurer la température avec la thermistance 503

La termistance dans le sachet ne porte pas de mention.

Avec le programme suivant :

(thermistor_janv01b)

int thermistorPin = A0; //analog pin 0

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

void loop(){
int thermistorReading = analogRead(thermistorPin);

Serial.println(thermistorReading);
delay(250); //just here to slow down the output for easier reading
}

- Avec 22°C dans la pièce la valeur affichée est 128,  lorsque la thermistance est pincée entre le pouce et l'index la valeur monte à 200.

- En remplaçant la thermistance par la LDR dans la pièce la valeur est 757 et 370 lorsque la LDR est cachée.

Voir réalisation : http://phmarduino.free.fr/ 

Voici une autre application :

http://disipio.wordpress.com/2009/07/17/temperature-measurement-using-arduino-and-a-thermistor/

 

30 décembre 2012

Arduino, mes premiers pas.

J'ai acheté un module "Arduino Leonardo" ainsi que la boîte "Arduino Sidekick Basic Kit"dont la composition est :

http://www.seeedstudio.com/wiki/index.php?title=Arduino_Sidekick_Basic_Kit

Arduino_Sidekick_Contents

J'ai commencé les premiers exemples.

Petit problème,  le programme dans Ubuntu 12.04 ne fonctionne pas avec Leonardo,  j'ai donc téléchargé la version arduino-1.0.3-linux32.tgz et cela fonctionne.

 

25 décembre 2012

Arduino, ma découverte

 

Arduino est une plateforme open-source de prototypage électronique basé sur flexible, facile à utiliser du matériel et des logiciels. Il est destiné aux artistes, designers, amateurs, et tous ceux qui s'intéressent à la création d'objets interactifs ou des environnements.

Le faite qu'elle est open-source fait que nous trouvons beaucoup de projets qui peuvent nous servir de base.

La documentation est importante. (Voir déjà les liens de ce blog)

 

Publicité
Publicité
Ma découverte de Arduino
Publicité
Archives
Publicité