Кто нибудь занимается ардуино?

  • позже выложу, но суть в том что ардуино симулирует нажатие кнопок на клавиатуре: ABC и Enter

    Находясь в скетче я втыкаю ардуино в усб и прежде чем я успеваю нажать на Upload, ардуино успевает внести эти три буквы, нажать enter и опять внести буквы в скетч и так бесконечно. Естественно скетч изменён и выкидывает ошикбку

    Надо было условие для старта цикла выставить но уже поздно :)

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем murxer ().

  • Я тут еще подумал - что сразу не сказал?: тебе если для дома, да еще и с тачскриниом, лучше сразу смотреть на ESP32. Программируется также, но на борту уже есть WiFi. Управление делается через web. Страничку забабахал, и открывай ее хоть на телефоне, хоть на планшете (вот тебе и тач).

    Спасибо за идею.


    Мне в пакет с деталями продавец сунул два таких борта ESP8266 NodeMcu V3 :

    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.


    Они лежали, пока я внимательней не начал читать, а нафина они вобще .^^

    Вчера один взял, запустил в влан , и испробовал скетч для включения - выключения всетодиода через вебпанель.

    Прикольная вещица:):thumbup:

    Теперь надо будет продумать всё с управлением реле.

  • поставь esp easy или tasmota . у сеня такая в saunaraum стоит . снимает температуру и влажность в комнате , темрепатуру в самой сауне , выводит показания на дисплей . стоит датчик света . вся инфа передаётся по mqtt на iobroker . можно кучу всякого добра на эту штуку подцепить . можно много чего сделать . вот для примера страничка

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • всем привет


    люди помогите сделать вернее написать программу для управления 3 servo через один канал на приёмнике


    расскажу как должно работать

    с приёмника получаем сигнал от 800 до 2200

    примерно также работают Servo

    1000 одно положение min

    2000 другое max

    1500 middle


    сигнал с приёмника можно подавать плавно можно можно ступенчато


    сигнал разбить на нескольок промежутков

    1. 800-1000

    2. 1001-1200

    3. 1201-1400

    4. 1401-1600

    5. 1601-1800

    6. 1801-2000

    7. 2001-2000


    нужно сделать так что при получении сигнала 1000-1199 Servo включались в определённую позицию

    у каждой Servo будет только 2 позиции

    1. 1000 назовём 0

    2. 2000 назовём 1


    вот примерно такая логика должна быть

    потом можно подправить


    Пожалуйста зарегистрируйся для просмотра прикрепленного файла.


    у меня мозгов не хватает

    готовую могу править или что-то менять, а с нуля ну ни как у меня


    или толкните (дайте пинка под зад) на правильную дорогу


    знаю что нужна библиотека servo.h


    сделать всё это на Arduino nano или mini

    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250

  • Ну примерно так:

    Range=сигнал с приёмника


    //сигнал разбить на нескольок промежутков

    if (800>Range<1000) {vRange =0;}

    if (1000>Range<1400) {vRange =1;}

    if (1400>Range<1600) {vRange =2;}

    if (1600>Range<1080) {vRange =3;}


    //setservo(1,0) - это только пример функции, где 1=серво нр.1, 0=позиция серво

    switch (vRange) {

    case 0: //Potentiometer turned up to 0-25%

    Serial.println(“low”);

    setservo(1,0);

    setservo(2,0);

    setservo(3,0);

    break;

    case 1: //Potentiometer turned up to 26-50%

    Serial.println(“medium”);

    setservo(1,0);

    setservo(2,1);

    setservo(3,1);

    break;

    case 2: //Potentiometer turned up to 51-75%

    Serial.println(“high”);

    setservo(1,0);

    setservo(2,0);

    setservo(3,1);

    break;

    case 3: //Potentiometer turned up to 76-100%

    Serial.println(“ridiculous high”);

    setservo(1,1);

    setservo(2,0);

    setservo(3,0);

    break;

    }

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем ge-nka ().

  • if (1600>Range<1080) {vRange =3;}

    так правильней:

    if (1600>Range<1800) {vRange =3;}


    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Сообщение было отредактировано 1 раз, последнее редактирование пользователем ge-nka ().

  • ну не знаю как твой sketch

    но разница к готовому на один Servo


    вот обыкновенный Servo Test

    без входа


    вот как сделать ещё вход


    вообщем автомат который крутит Servo 0° 90° 180° 90°.....

    c задержкой 1сек.

    и с выводом инфы на сериальный порт


    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250

  • вот как сделать ещё вход

    по идее так:



  • ge-nka буду пробовать все возможные варианты


    я пока вот такое наконструировал

    собираю с разных Sketch, где что найду


    но ещё не проверял


    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250

  • Вот накидал тебе может что пригодится, если приёмник это Аналог-Вход с потенциометром,


    Но что-то мне подсказывает чт приёмник у тебя не "Absolutwertgeber" a "inkrementalgeber ", если так то тебе нужен "Refernzpunkt ab dem gezählt wird"

    Исходный код
    1. unsigned long servopulse = 1500; // servosignal length
    2. ......
    3. servopulse = pulseIn(servoin, HIGH);
    4. .......
    5.  if ( servopulse =900 + -hysteresis)
    6.    servo_gear.write(0); // Dem Servo wird 0 Grad befohlen
    7.    servo_diff1.write(0); // Dem Servo wird 0 Grad befohlen
    8.    servo_diff2.write(0); // Dem Servo wird 0 Grad befohlen


    Кстате schweißende Кlammer nach if забыл:

    if (проверка) { делаю1; делаю2;}





  • на выходе приёмника или на входе impuls

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250

  • Ну хорошо я правильно понял,

    у тебя на один input-pin ардуино подаётся PWM-сигнал.

    У него PWM-Амплитуда от 800 до 2200 в секунду?

    И ты должен это вычитать и поместить в Variable.

    Die Frequenz der PWM wäre dann interessant, das heißt dein PWM Band ist von 0 bis 2200(2200=100%)?


    Или ты выдаёшь PWM-Сигнал из out-pin ардуино и знаешь какая у тебя PWM-Амплитуда?

  • он как на входе от RC приёмника

    так и на выходе для Servo

    т.к. Servo управляются PWM сигналом

    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250

  • Тебе помоему тогда вот эту команду надо:


    writeMicroseconds(Wert)

    Sendet den angegebenen Wert an den Servo. Meistens wird dadurch der Schaft des Servos an eine bestimmte Position bewegt. Bei Standard-Servos mit Hebel bedeutet ein Wert von 1000 das eine Ende, 2000 das andere und ein Wert dazwischen ein entsprechender Winkel (1500 sind dann ungefähr die Mitte). Beispiel: servo.writeMicroseconds(1200);

    Пожалуйста зарегистрируйся для просмотра данной ссылки на страницу.

  • так, считывать сигнал получается

    в сериальном окне пишет от 1000 до 2000

    уже то что надо


    теперь осталось попробовать управлять servo

    и потом всё это соединить


    в окне правда пишет всё в строчку

    а хотелось бы в столбец

    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250

  • спасибки

    Mein Fuhrpark

    1:6 MCD RR5, 1:6 Hörmann HT 3 V3, Hörmann TK 8 Elektro,

    1:7 Traxxas XO-1, Unlimited Desert Racer

    1:8 Axial Yeti XL, Traxxas Summit + Sand & Snow, E-Revo Brushless, Traxxas SCT

    1:10 Axial SCX 10 v2, TRX4 Defender, TRX4 Bronco, TRX4 Kit, 1:10 TRX6 G63 AMG

    DJI Mavic 2 Pro, TBS Discovery Longrange, Tarot FY680 Pro, Tarot X8

    Race Copter: Fossils Gravity 280, ZMR 250