capteur Ultrasons URM 37
Débuté par mez_arduino, avril 05 2012 11:15
7 réponses à ce sujet
#1
Posté 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
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
#2
Posté 05 avril 2012 - 11:22
Bonjour mez_arduino.
Afin de pouvoir te donner un coup main , pourrai tu utilisé cette balisse pour mettre ton code , merci
Afin de pouvoir te donner un coup main , pourrai tu utilisé cette balisse pour mettre ton code , merci
#3
Posté 05 avril 2012 - 01:29
mercii, j'ai pas bien saisie ce que vous voulez dire
#4
Posté 05 avril 2012 - 01:35
Se logo te permé de métre un code de dans ça donne se résulta , c'est ton cote
Tu voie ça fait plus propre.
/* 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); }
Tu voie ça fait plus propre.
#5
Posté 05 avril 2012 - 03:14
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
hum...
essai de rechercher urm37 sur le forum il y a quelque discution sur ce sujet
J'avais fait une traduction d'un autre code il y a quelque temps
Slts
ps: il me semble que sur une arduino les pin 1et 2 servent a la com usb avec le pc. a verifier !
#8
Posté 05 avril 2012 - 05:46
De rien julkien
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users