![]() |
|
|
#1 | ||||||
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
Доброго времени суток.
Подскажите по скетчу. Делаю проверку сонара Пример нашел тут: http://arduinokit.ru/?p=272 при компиляции скетча получаю ошибки: Цитата:
Цитата:
посмотрел демку сонара разница в объявлении библиотеки: демка: Цитата:
Цитата:
код демки Код:
#include "Ultrasonic.h"
Ultrasonic ultrasonic(12,13);
void setup() {
Serial.begin(9600);
}
void loop()
{
Serial.print(ultrasonic.Ranging(CM));
Serial.println(" cm");
delay(1000);
}
Цитата:
Код:
#include "Ultrasonic.h"
#define TRIGGER_PIN 12
#define ECHO_PIN 13
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
Serial.print("MS: ");
Serial.print(microsec);
Serial.print(", CM: ");
Serial.print(cmMsec);
Serial.print(", IN: ");
Serial.println(inMsec);
if ((cmMsec) < 10) { digitalWrite(11, HIGH); }
if ((cmMsec) > 10) { digitalWrite(11, LOW); }
if ((cmMsec) < 20) { digitalWrite(10, HIGH); }
if ((cmMsec) > 20) { digitalWrite(10, LOW); }
if ((cmMsec) < 30) { digitalWrite(9, HIGH); }
if ((cmMsec) > 30) { digitalWrite(9, LOW); }
if ((cmMsec) < 40) { digitalWrite(8, HIGH); }
if ((cmMsec) > 40) { digitalWrite(8, LOW); }
if ((cmMsec) < 50) { digitalWrite(7, HIGH); }
if ((cmMsec) > 50) { digitalWrite(7, LOW); }
if ((cmMsec) < 60) { digitalWrite(6, HIGH); }
if ((cmMsec) > 60) { digitalWrite(6, LOW); }
if ((cmMsec) < 70) { digitalWrite(5, HIGH); }
if ((cmMsec) > 70) { digitalWrite(5, LOW); }
if ((cmMsec) < 80) { digitalWrite(4, HIGH); }
if ((cmMsec) > 80) { digitalWrite(4, LOW); }
if ((cmMsec) < 90) { digitalWrite(3, HIGH); }
if ((cmMsec) > 90) { digitalWrite(3, LOW); }
if ((cmMsec) < 100) { digitalWrite(2, HIGH); }
if ((cmMsec) > 100) { digitalWrite(2, LOW); }
delay(100);
}
Цитата:
вразумите библиотека Код:
/*
Ultrasonic.h - Library for HR-SC04 Ultrasonic Ranging Module.
Created by ITead studio. Alex, Apr 20, 2010.
iteadstudio.com
*/
#ifndef Ultrasonic_h
#define Ultrasonic_h
#define CM 1
#define INC 0
class Ultrasonic
{
public:
Ultrasonic(int TP, int EP);
long Timing();
long Ranging(int sys);
private:
int Trig_pin;
int Echo_pin;
long duration,distacne_cm,distance_inc;
};
#endif
Последний раз редактировалось viktor; 16.02.2014 в 22:24. |
||||||
|
|
|
|
|
#2 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Читать датчик можно без библиотек
Код:
digitalWrite(Trig_pin, HIGH); delayMicroseconds(10); digitalWrite(Trig_pin, LOW); duration = pulseIn(Echo_pin, HIGH); duration = duration / 58; |
|
|
|
|
|
#3 |
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
Это понятно, хочется разобраться в найденном примере.
Первую ошибку убрал - заменив timing на Timing дальше уперся в convert. |
|
|
|
|
|
#4 | |
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
все - понял. в том примере - код библиотеки доработан
Цитата:
|
|
|
|
|
|
|
#5 |
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
заработало
дети довольны
|
|
|
|
|
|
#6 |
|
Member
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0 ![]() |
Куда планируешь прилепить датчик?
|
|
|
|
|
|
#7 |
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
Думаю - сделать аналог машины робота.
Только в качестве шасси взять корпус от р/у танка ( масштаб 1:16). Детям покупали т-34 и тигра, у 34 сломано крепление башни, тигр более "живой", его за башню брать не удобно .В перспективе - доработку камерой и подъемной площадкой - что-то вроде ножничного подъемника- например - подъехал - поднял камеру - посмотрел. Ттакже есть мысль пользовать робота как диагноста для осмотра автомобиля снизу - без подъемника. Последний раз редактировалось viktor; 17.02.2014 в 00:52. |
|
|
|
|
|
#8 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Посмотри в разделе "Робототехника", там есть готовое решение
Допилишь под себя |
|
|
|
|
|
#9 | |
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
В данном случае - проверял работу сонара, после покупки датчика обнаружил что один конденсатор обломлен. Впаял замену на 0.1мкф.
Работает ![]() Цитата:
Последний раз редактировалось viktor; 17.02.2014 в 00:59. |
|
|
|
|
|
|
#10 |
|
Junior Member
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 47
Сообщений: 9
Вес репутации: 0 ![]() |
Такое бы вот чудо собрать.
Но дома - такое точно не сдлеать, а хочется.. Если только... хм.. а ить мысль. из картона попробовать собрать, на базе того-же танка |
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|