Просьба написать скетч на дальномер
- Войдите на сайт для отправки комментариев
Чт, 31/10/2013 - 12:32
Доброго дня!
Помогите (мозгов не хватает) написать простой скетч.
Задача - дальномер HR при приближении объекта выдает сигнал на вибратор (4,7 В).
Чем ближе объект - тем сильнее жжужит.
(можно использовать библиотеку newping.h)
А как же скетчи-примеры, идущие в составе библиотеки Newping ?
Задача - дальномер HR при приближении объекта выдает сигнал на вибратор (4,7 В).
Чем ближе объект - тем сильнее жжужит.
Простите, не смог удержаться....
Цитата: Мировое признание формат Бетакам получил после принятия его порноиндустрией
Вы хотите прославить ардуино тем же способом? :D
Простите, не смог удержаться....
Цитата: Мировое признание формат Бетакам получил после принятия его порноиндустрией
Вы хотите прославить ардуино тем же способом? :D
Дохтор, это не тот вибратор - это этот вибратор
этот, пожалуй, и до гланд достанет.....
вибратор с мобильного телефона, а точнее мотор-вибратор:
#define pinTrig 2 #define pinEcho 3 #define pinVibro 4 void setup() { //Serial.print(9600); pinMode(pinTrig, OUTPUT); pinMode(pinVibro, OUTPUT); } void loop() { digitalWrite(pinTrig, HIGH); delayMicroseconds(10); digitalWrite(pinTrig, LOW); uint32_t time_us = pulseIn(pinEcho, HIGH, 30000); int distance_sm = time_us/58; //Serial.println(distance_sm); if(distance_sm > 50 && distance_sm < 500) { byte vibro = map(distance_sm, 500, 50, 0, 250); analogWrite(pinVibro, vibro); } else analogWrite(pinVibro, 0); delay(100); }Спасибо!!!
А лучше так
#define pinTrig 2 #define pinEcho 3 #define pinVibro 4 #define MIN_DIST 0 #define MAX_DIST 500 #define MIN_VIBRO 0 #define MAX_VIBRO 250 void setup() { //Serial.print(9600); pinMode(pinTrig, OUTPUT); pinMode(pinVibro, OUTPUT); } void loop() { digitalWrite(pinTrig, HIGH); delayMicroseconds(10); digitalWrite(pinTrig, LOW); uint32_t time_us = pulseIn(pinEcho, HIGH, 30000); int distance_sm = time_us/58; //Serial.println(distance_sm); if(!time_us || distance_sm >= MAX_DIST) analogWrite(pinVibro, 0); else if(distance_sm <= MIN_DIST) analogWrite(pinVibro, MAX_VIBRO); else { int vibro = map(distance_sm, MAX_DIST, MIN_DIST, MIN_VIBRO, MAX_VIBRO); analogWrite(pinVibro, vibro); } delay(100); }Спасибо, действительно - этот вариант лучше!
чтобы "перевернуть" значение сигнала в функции map меняем местами min и max?
Зачем?
мне надо при приближении - усиление сигнала.
Сейчас схему соберу (на Pro mini) - протестирую, завтра отпишусь, спасибо за участие.
мне надо при приближении - усиление сигнала.
И? Вы где то увидили другое?
Не зря было сказано:
А человек упертый.