Aller au contenu


mez_arduino

Inscrit(e) (le) 05 avril 2012
Déconnecté Dernière activité Privé
-----

Sujets que j'ai initiés

capteur Ultrasons URM 37

05 avril 2012 - 11:15

bonjour
en faite, je 'ai commencé à utiliser la carte Arduino pour faire l'acquisition des données de quelques signaux..
j'ai commencé par le capteur ultrasons, je lui est bien connecté à la carte arduino UNO, et j'ai mis le progrmme (que j'ai trouvé sur internet) suivant pour mesurer la distance


/* Ultrasound Sensor
*------------------
* URM V3.2 ultrasonic sensor TTL connection with Arduino
* Reads values (0-300) from an ultrasound sensor (3m sensor)
* and writes the values to the serialport.
* Pin12 (Arduino)-> Pin 1 VCC (URM V3.2)
* GND (Arduino) -> Pin 2 GND (URM V3.2)
* Pin11 (Arduino) -> Pin 7 (URM V3.2)
* Pin 2 (Arduino) -> Pin 9 (URM V3.2)
* Pin 3 (Arduino) -> Pin 8 (URM V3.2)
* www.yerobot.com programme modifie pour carte arduino duemilanove
* lecture distance sur module URM 37
* le 9/9/10
*/


#include <NewSoftSerial.h>
NewSoftSerial mySerial(2, 3); // creation d'un nouveau port de communication serie voies 2 et 3
int UREnable = 11; // Ultrasound enable pin
int URPower = 12; // Ultrasound power pin
int val = 0;
int USValue = 0;
int timecount = 0; // Echo counter
int ledPin = 13; // LED connected to digital pin 13
boolean flag=true;
uint8_t DMcmd[4] = { 0x22, 0x00, 0x00, 0x22}; //distance measure command

void setup() {
Serial.begin(9600); // Sets the baud rate to 9600
mySerial.begin(9600); // initialisation du port de com vers le capteur ultrason
// application du 5v sur les bornes 1 et 7 du module URM 37
pinMode(ledPin, OUTPUT); // Sets the digital pin as output
pinMode(UREnable, OUTPUT);
digitalWrite(UREnable, HIGH); // Set to High
pinMode(URPower, OUTPUT);
digitalWrite(URPower, HIGH); // Set to High

delay(200); //Give sensor some time to start up --Added By crystal from Singapo, Thanks Crystal.
}

void loop()
{

flag=true;
//Sending distance measure command : 0x22, 0x00, 0x00, 0x22 ;
//trame à envoyer au module URM 4 mots: code fonction,val_1,val_2,somme(code fonction + val_1+ val_2 )
// codage des fonctions 0x11 :lecture T°
// 0x22 :lecture de la distance ,il est possible d'utiliser un servo sur lequel est positionner le modul URM
// alors val_1 sera egal a l'angle de rotation du servo
// 0x33 : lecture de l'EEPROM
// 0x44 : ecriture de l'EEPROM
// pour plus d'information consulter le site www.yerobot.com

for(int i=0;i<4;i++)
{
mySerial.print(DMcmd[i],BYTE); //ecriture de 4 valeurs par communication serie vers la carte URM
}

delay(75); //delay for 75 ms

while(flag)
{
if(Serial.available()>0)
{
int header=mySerial.read(); //0x22 lecture de 4 valeurs venant de la communication vers la carte URM
int highbyte=mySerial.read();
int lowbyte=mySerial.read();
int sum=mySerial.read();//sum

if(highbyte==255)
{
USValue=65525; //if highbyte =255 , the reading is invalid.
}
else
{
USValue = highbyte*255+lowbyte;
}

Serial.print("Distance=");
Serial.println(USValue);

flag=false;
}

}
delay(50);
}

lorseque je compile, un erreur s'affiche
"
sketch_apr05a.cpp:19:27: error: NewSoftSerial.h: No such file or directory
sketch_apr05a:19: error: 'NewSoftSerial' does not name a type
sketch_apr05a.cpp: In function 'void setup()':
sketch_apr05a:31: error: 'mySerial' was not declared in this scope
sketch_apr05a.cpp: In function 'void loop()':
sketch_apr05a:57: error: 'mySerial' was not declared in this scope
sketch_apr05a:66: error: 'mySerial' was not declared in this scope "
celà signifie que que le port que j'ai crée, c'est comme ce n'est pas déclarer dans mon programme..
j'ai essayé longtemps de resoudre ce problème mais je n'ai pas pu :(
merci d'avance