Здравствуйте!
Есть проект по машинке для запуска бумажных самолетов. Подскажите как подключить уз сенсор urm37 к Леонардо для активации двух dc моторов и подскажите пожалуйста простой код, чтобы обойтись без библиотек.
Прекрасный плэйн лаунчер!
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Прекрасный плэйн лаунчер!
Привет!
Я бы взял пример с сайта dfrobot и добавил управление моторами через motor shiled:
Было бы интересно увидеть фотки или видео с результатом разработки.
Я бы взял пример с сайта dfrobot и добавил управление моторами через motor shiled:
Код: Выделить всё
// # Editor :Jiang from DFRobot
// # Data :18.09.2012
// # Product name:ultrasonic scanner
// # Product SKU:SEN0001
// # Version : 0.2
// # Description:
// # The Sketch for scanning 180 degree area 4-500cm detecting range
// # Connection:
// # Pin 1 VCC (URM V3.2) -> VCC (Arduino)
// # Pin 2 GND (URM V3.2) -> GND (Arduino)
// # Pin 4 PWM (URM V3.2) -> Pin 3 (Arduino)
// # Pin 6 COMP/TRIG (URM V3.2) -> Pin 5 (Arduino)
// #
// # Pin 6 -> для управления мотором
// #
int URPWM = 3; // PWM Output 0-25000US,Every 50US represent 1cm
int URTRIG=5; // PWM trigger pin
unsigned int Distance=0;
uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01}; // distance measure command
void setup(){ // Serial initialization
pinMode(13, OUTPUT);
Serial.begin(9600); // Sets the baud rate to 9600
PWM_Mode_Setup();
}
void loop()
{
PWM_Mode();
if (Distance < 50) {
digitalWrite(13, HIGH);
analogWrite(6, 255);
} else {
digitalWrite(13, LOW);
analogWrite(6, 0);
}
delay(20);
} //PWM mode setup function
void PWM_Mode_Setup(){
pinMode(URTRIG,OUTPUT); // A low pull on pin COMP/TRIG
digitalWrite(URTRIG,HIGH); // Set to HIGH
pinMode(URPWM, INPUT); // Sending Enable PWM mode command
for(int i=0;i<4;i++){
Serial.write(EnPwmCmd[i]);
}
}
void PWM_Mode(){ // a low pull on pin COMP/TRIG triggering a sensor reading
digitalWrite(URTRIG, LOW);
digitalWrite(URTRIG, HIGH); // reading Pin PWM will output pulses
unsigned long DistanceMeasured=pulseIn(URPWM,LOW);
if(DistanceMeasured==50000){ // the reading is invalid.
Serial.print("Invalid");
}
else{
Distance=DistanceMeasured/50; // every 50us low level stands for 1cm
}
Serial.print("Distance=");
Serial.print(Distance);
Serial.println("cm");
}
Re: Прекрасный плэйн лаунчер!
Спасибо большое!
Как только доделаю, выложу видео)
Как только доделаю, выложу видео)