Страница 1 из 2
Запуск сервопривода SG90 по таймеру
Добавлено: Пн июн 18, 2018 16:36:28
Silent
Дано: сервопривод
https://www.chipdip.ru/product/sg90-analog-servo
Нужно сделать, чтобы он делал движения от 0 до 180 и сразу обратно несколько раз в сутки в заданное время (можно зашить в МК или куда-то там ещё).
Понятно, что использовать Ардуино для этого слишком дорого, а собирать из элементарных компонентов не очень гибко. Желательно, чтобы вся обвязка была дешевле 500 р. (ну и программатор не дороже). Чтобы компонентов было мало и они были бы достаточно распространенными (в Питере) и порог входа в это дело не очень высоким (если ещё и пример скините, вообще, супер). Есть опыт проектирования микросхем и прошивки МК, но курить мануалы и разбираться с неожиданными подводными камнями лишний раз тоже не хочется.
В общем, посоветуйте что-нибудь

Re: Запуск сервопривода SG90 по таймеру
Добавлено: Пн июн 18, 2018 22:57:39
vlasovzloy
Если точное время срабатывания не важно мультивибратор на кмоп логике и на ней же одновибратор.
Добавлено after 32 minutes 21 second:
Ошибся, посчитал аналоговый значит в зависимости от напряжения на входе угол, а тут стандартный сигнал судя по даташиту. Тогда если на логике делать понадобится еще тестер серв
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Пн июн 18, 2018 23:08:30
АлександрЛ
И вы хотите, чтобы серва постоянно под напряжением была?
(имхо) гораздо лучше- выкинуть из сервы всю электронику, и использовать только моторчик с редуктором..
Но, если вам выкидывать электронику не хочется, то можно сделать генератор на 555 таймере, и в нужные моменты параллельно резистору, определяющему "ширину" импульса- подключать резистор, который будет в 2 раза уменьшать длительность импульса.
Прежде всего- вопрос в том, какие именно радиодетали вы можете купить/достать/спи**ить/достать из тумбочки/выковырять откуда- либо.. Вариантов решения МНОГО, что именно вы хотите..
Ну, вот, "для затравки" -
типа "сервотестера" на 555 таймере:

При нажатии на кнопку длительность управляющего импульса равна примерно 1 миллисекунде, при отпущенной- примерно 2 миллисекунды, период около 20 миллисекунд (50 герц), более точно- надо подбирать резисторы R3 и R2 так, чтобы серва в крайних положениях не упиралась в ограничители.
зы.. Проще всего, то, что вам надо- реализовать, например, на Тини13.. но.. Программист из меня никакой, поэтому с прошивкой для тини..
Да и простенькая дураина

не так уж и дорого стоит:
https://ru.aliexpress.com/item/10PCS-Pr ... autifyAB=0
https://ru.aliexpress.com/item/5V-Micro ... autifyAB=0
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Пн июн 18, 2018 23:23:45
vlasovzloy
Кстати да, можно фиксатор выломать и пусть по кругу крутится. На концевике размыкает цепь мотора. При кратковременном импульсе мотор начнет крутить и концевик замкнется пока редуктор круг не сделает
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 19, 2018 06:18:22
Silent
В общем, тогда можно забить на имеющийся сервопривод и использовать что-то другое. Можно назад пружинкой или резинкой возвращать. Грубо говоря, устройство по-сути одноразовое, должно поднимать по расписанию картонку и тут же опускать. Можно, вообще, логику на часовом механизме построить (
https://www.bookvoed.ru/book?id=6745285 ... 0IQAvD_BwE), который будет замыкать контакт часовой стрелкой в определенные промежутки времени. Можно и на дешевой плате с МК, если в инете есть мануалы для чайников, как к ней код писать или кто-то здесь поможет.
Тут главное простота. Желательно, чтобы всё в одном магазине продавалось (Чип и Дип, например), без недельной доставки, без разводки печатной платы и чтобы слишком много всего не городить. Припаять пару контактов, приклеить - и готово
P.S. В чём схемы моделируете?)
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 19, 2018 08:22:36
vlasovzloy
Если точное время срабатывания не важно мультивибратор на кмоп логике и на ней же одновибратор
дальше через транзистор питание кратковременно подается на двигатель
фиксатор выломать и пусть по кругу крутится. На концевике размыкает цепь мотора. При кратковременном импульсе мотор начнет крутить и концевик замкнется пока редуктор круг не сделает
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Ср июн 20, 2018 19:44:41
АлександрЛ
[uquote="Silent",url="/forum/viewtopic.php?p=3402305#p3402305"]Грубо говоря, устройство по-сути одноразовое, должно
поднимать по расписанию
картонку и тут же опускать.[/uquote]
Мишень для обучения снайперов?

Re: Запуск сервопривода SG90 по таймеру
Добавлено: Ср июн 20, 2018 21:03:05
roman.com
что вы тут напридумывали...)) тестер серв на логике делать... На концевике размыкает цепь мотора... генератор на 555 таймере...
Silent писал(а):Припаять пару контактов, приклеить - и готово
вы саме себе уже ответили выше...
Silent писал(а):(можно зашить в МК или куда-то там ещё).
SG90 - на любом радиорынке ~ 200 рублей.
программатор - на любом радиорынке ~ 200 рублей. Можно заказать ещё дешевле -
https://ru.aliexpress.com/item/FREE-SHI ... autifyAB=0
ATmega8 - на любом радиорынке ~ 100 рублей.
Стабилизатор 5V - на любом радиорынке ~ 10 рублей.
Кварц (любой) - на любом радиорынке ~ 10 рублей.
Пару конденсаторов - на любом радиорынке ~ 1 рубл.
))
Всё.
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Ср июн 20, 2018 21:23:44
АлександрЛ
[uquote="roman.com",url="/forum/viewtopic.php?p=3403443#p3403443"]что вы тут напридумывали...))
Silent писал(а):(можно зашить в МК или куда-то там ещё).
SG90 - на любом радиорынке ~ 200 рублей.
программатор - на любом радиорынке ~ 200 рублей.
ATmega8 - на любом радиорынке ~ 100 рублей.
Стабилизатор 5V - на любом радиорынке ~ 10 рублей.
Кварц (любой) - на любом радиорынке ~ 10 рублей.
Пару конденсаторов - на любом радиорынке ~ 1 рубл.
))
Всё.[/uquote]
Имхо- достаточно Тини13..
Осталась мелочь..
Выковырять из ТС информацию о том, с какой периодичностью надо мишень поворачивать, и
НАПИСАТЬ ПРОГРАММУ...
А для питания будет достаточно вот такого БП:
https://www.pleer.ru/product_316692_Act ... 47057.html
https://www.pleer.ru/product_316682_Act ... 47059.html
Дело за малым- найти того, кто согласится "просто так, из интереса, кайфа ради"

написать прошивку..
зы.. Вообще, ТС что- то говорил про ардуинку, но почему- то посчитал, что это дорого..
Но ардуинку можно напрямую подключить к БП с USB выходом, и всё- кварц, программатор и пара конденсаторов уже есть на плате ардуинки, а серву можно подключать напрямую..
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Чт июн 21, 2018 10:40:13
roman.com
Тини13.. не достаточно. У неё 8-битный таймер. А программно делать ШИМ не круто.
Лучше мега48 и выше... У неёё 16-битный таймер - для сервы то что надо.))
Уже подробно обсуждали когда делали радиоуправление например тут -
viewtopic.php?f=28&t=5884&p=3402765#p3402765
А написать прошивку.. 10 строчек не проблема)) Просто взять радиоуправление и выкинуть всё лишнее... если знать что TC хочет... ))
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Чт июн 21, 2018 11:07:58
vlasovzloy
Написал же картонку поднимать. Кота кормить или в госдуме голосовать)))
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Чт июн 21, 2018 11:50:15
roman.com
Silent писал(а):Нужно сделать, чтобы он делал движения от 0 до 180 и сразу обратно несколько раз в сутки в заданное время (можно зашить в МК или куда-то там ещё).
Кто и как будет задавать время? Через меню? Кнопочками? C копьютера? Дистанционно (с помощью пульта)? по интернету...? ))
Кота кормить лучше дистанционно по интернету...))
А в госдуме картонку поднимать лучше по Wi-Fi (у них есть Wi-Fi)... через приложение на смартфоне... не вставая с места))
И т.д. и .т.п.))
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Чт июн 21, 2018 13:05:07
vlasovzloy
не ну вдруг уснул слуга народа, а так картонка поднялась и проголосовала. силент, сколько ты говорил тебе картонок надо поднимать?
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 13:13:44
Silent
В общем, сделал девайс всё-таки на Arduino nano (CH340). Уже почти неделю исправно работает. Вышло, конечно, дороже 500 р., около 1000 за всё, ну да ладно.
https://youtu.be/8fHxeEk03i4
Фотка вместо схемы (там видно куда что подключается). Большая кнопка - тестовый запуск сервы, маленькая - выставление текущего времени (часа), резисторы 10 кОм. Кому надо - пользуйтесь)
Код:
Спойлер
#include <SimpleTimer.h>
#include <Servo.h>
Servo myservo;
SimpleTimer timer;
const int timeButtonPin = 7;
const int actionButtonPin = 8;
const int servoPin = 9;
const unsigned long checkDelayMs = 1000L * 60 * 60;
const int periodTick = 24;
const int firstTick = 9;
const int secondTick = 18;
int actionButtonState = 0;
int timeButtonState = 0;
int tact = 0;
int cheatCounter = 0;
void setup() {
timer.setInterval(checkDelayMs, timerInterupt);
pinMode(actionButtonPin, INPUT);
pinMode(timeButtonPin, INPUT);
pinMode(LED_BUILTIN, OUTPUT);
myservo.attach(servoPin);
myservo.write(170);
delay(2000);
myservo.detach();
}
void timerInterupt() {
tact++;
if (tact >= firstTick && cheatCounter == 0) {
cheatCounter = 1;
runServo();
}
if (tact >= secondTick && cheatCounter == 1) {
cheatCounter = 2;
runServo();
}
if (tact >= periodTick) {
tact = 0;
cheatCounter = 0;
}
}
void loop() {
timer.run();
actionButtonState = digitalRead(actionButtonPin);
timeButtonState = digitalRead(timeButtonPin);
if (actionButtonState == HIGH) {
runServo();
}
if (timeButtonState == HIGH) {
digitalWrite(LED_BUILTIN, HIGH);
tact++;
if (tact == 24) {
tact = 0;
delay(100);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
digitalWrite(LED_BUILTIN, HIGH);
delay(100);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
digitalWrite(LED_BUILTIN, HIGH);
}
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
}
void runServo(){
myservo.attach(servoPin);
myservo.write(5);
delay(2000);
myservo.write(170);
delay(2000);
myservo.detach();
}
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 16:21:52
АлександрЛ
И всё- таки, интересно- а для чего ОНО нужно?
зы.. Теперь перенести
кот 
КОД

в какую- нибудь тиньку подешевле- и всё..

Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 18:53:47
Silent
[uquote="АлександрЛ",url="/forum/viewtopic.php?p=3408011#p3408011"]И всё- таки, интересно- а для чего ОНО нужно?[/uquote]
А что, по видео не понятно?

Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 19:54:37
АлександрЛ
[uquote="Silent",url="/forum/viewtopic.php?p=3408165#p3408165"][uquote="АлександрЛ",url="/forum/viewtopic.php?p=3408011#p3408011" для чего ОНО нужно?[/uquote]
по видео не понятно?

[/uquote]
"эффект присутствия"???
Типа- на работе, входишь и выходишь..
Хорошая игрушка для создания алиби..

Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 21:01:03
Silent
Ага, типа солдат спит - служба идёт
Правда, батарейки быстро кушает, буду оптимизировать. Тут есть спецы по ардуино? В какой теме стоит постить соответствующие вопросы?
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 21:35:52
АлександрЛ
[uquote="Silent",url="/forum/viewtopic.php?p=3408312#p3408312"]Правда, батарейки быстро кушает, буду оптимизировать. Тут есть спецы по ардуино?[/uquote]
Оптимизировать
кот 
КОД в дураине- нет смысла, она "кушает" примерно тысячную долю того, что кушает серва-
Я не знаю, измеряли ли вы потребляемый ей ток- я измерил на похожей, только с поворотом на 90 градусов- она "кушает" от 10 до 40 мА, в зависимости от того "как остановится"..
Поскольку у батарейки АА "ёмкость" 500~1500 мАч , то "в среднем" её хватит на сутки, максимум- на трое суток..
Вам надо на "время ожидания" просто отключать питание сервы- время работы увеличится раз в 10~20, а то и больше..
Re: Запуск сервопривода SG90 по таймеру
Добавлено: Вт июн 26, 2018 21:51:13
Silent
Я же выложил код) Там видно, что питание сервы я отключаю. Т.е. она работает около 5с. в сутки.
P.S. Хочу измерить напряжение на Ардуине встроенными средствами. Какое макимальное напряжение я могу подать на АЦП? Оно работает от 0 до 5 вольт. В большую сторону измерять нет смысла и делитель делать, соответственно, тоже. Если на него 6в или 9 придет, он же просто единицу выдаст?