Как написать скетч

Тема в разделе "Arduino & Shields", создана пользователем Volt-Amper, 10 авг 2019.

  1. Volt-Amper

    Volt-Amper Нерд

    Не пойму никак уважаемые форумчане как написать общий скетч для 4 модулей и 4 моторов, т.е. скетч который объединят бы все модули в одну программу.
     
  2. ИгорьК

    ИгорьК Гуру

    Последнее редактирование: 10 авг 2019
  3. Volt-Amper

    Volt-Amper Нерд

    Откуда взялось два PWM в скетче, если у меня 4 мотора подключены к пинам: 4,5,9,10 от Arduino Sensor Shield, а EnA и EnB к пинам 11 и 7 на шилде.
     

    Вложения:

  4. Volt-Amper

    Volt-Amper Нерд

    Запустил тест моторов, пины в скетче прописал такие которые на шилде воткнуты, и все равно не заводятся моторы, подаю на моторы 5В от лабораторного источника питания, крутятся норм. А со скнтчем не запускаются
     
  5. Volt-Amper

    Volt-Amper Нерд

    Как мне эти два скетча объединить, чтобы и сигнал с драйвера моторов приходил на моторы и моторы работали?
     

    Вложения:

  6. Andrey12

    Andrey12 Гик

    Эти только в каком нибудь графическом редакторе, можно в фотошопе.
    Выложите код как положено, схему тоже, тогда будет хоть немного понятно что вы делаете.
     
  7. Asper Daffy

    Asper Daffy Иксперд

    Боюсь, что никак.
     
  8. Volt-Amper

    Volt-Amper Нерд

    Вот только такая схема есть, делал просто наобум, кода никакого нет кроме библиотек, код модулей китаец прислал на электронный ящик, причём не полный, где найти недостающие уроки не найду нигде. У меня есть код 4 разных модулей и все, когда загружаю каждый модуль в Arduino Uno то предыдущий код модуля заменяется на новый код. Как два кода совместить в одну программу не пойму.
     

    Вложения:

  9. Volt-Amper

    Volt-Amper Нерд

    Может кто подскажет где найти полный скетч со всеми датчиками: сервопривод sg90(servo) , hc-sr04(модуль объезда припятствий), hc-06(Bluetooth) , l298n(драйвер моторов) для них нужен скетч, библиотеки есть. Чтобы все датчики были соединены одним кодом в одном файле .ino. У меня в этом kit'e не хватает нескольких уроков, поэтому не могу найти общую программу для запуска всех 4 периферийных устройств одновременно.
     
  10. Volt-Amper

    Volt-Amper Нерд

    #include <Servo.h>
    #define coef 5
    #define min_zone 6
    #define max_zone 44
    #define Trig 9
    #define Echo 10
    #define servoPin 12
    Servo myservo;

    void setup() {
    pinMode (Trig, OUTPUT); //инициируем как выход
    pinMode (Echo, INPUT); //инициируем как вход
    myservo.attach (servoPin);
    myservo.write (0);
    }
    unsigned int impulseTime=0;
    unsigned int distance_sm=0;

    void loop() {
    digitalWrite (Trig, HIGH); /* Подаем импульс на вход trig дальномера */
    delayMicroseconds (10); // равный 10 микросекундам
    digitalWrite (Trig, LOW); // Отключаем
    impulseTime = pulseIn(Echo, HIGH); // Замеряем длину импульса
    distance_sm = impulseTime/58; // Пересчитываем в сантиметры
    if (distance_sm >= min_zone && distance_sm <= max_zone)
    //если замеряемая длинна больше 4см и меньше 22см
    {
    myservo.write (coef * (distance_sm - min_zone));
    // поворачиваем сервопривод на значение: 10*(замеряемая длина - 4см )
    }
    else if (distance_sm < min_zone)
    //иначе, если дистанция менее 4 см, сервопривод в положении ноль градусов
    {
    myservo.write(0);
    }
    else //иначе
    {
    myservo.write(180); //сервопривод в положении 180 градусов
    }
    delay (100); /* ждем 0.1 секунды */
    }
     
  11. Volt-Amper

    Volt-Amper Нерд

    Скетч заработал, только не пойму как вернуть положение hc-sr04 к нулевой точке, чтобы "дальномер" смотрел вперед.
     
  12. Volt-Amper

    Volt-Amper Нерд

    int IN1=2;
    int IN2=4;
    int IN3=7;
    int IN4=8;
    int ENA=6;
    int ENB=5;
    void setup()
    {
    for (int i = 5; i <11; i ++)
    {
    pinMode(i, OUTPUT);
    }
    }
    void loop()
    {
    // rotate CW
    digitalWrite(IN1,LOW);
    digitalWrite(IN2,HIGH);
    analogWrite(ENA,200);
    digitalWrite(IN3,LOW);
    digitalWrite(IN4,HIGH);
    analogWrite(ENB,200);
    delay(2000);
    // pause for 2S
    analogWrite(ENA,0);
    analogWrite(ENB,0);
    delay(1000);
    // rotate CCW
    digitalWrite(IN1,HIGH);
    digitalWrite(IN2,LOW);
    analogWrite(ENA,100);
    digitalWrite(IN3,HIGH);
    digitalWrite(IN4,LOW);
    analogWrite(ENB,100);
    delay(2000);
    // pause for 2S
    analogWrite(ENA,0);
    analogWrite(ENB,0);
    delay(2000);
    }

    Этот скетч мне нужно как в то в предыдущем посте в тот скетч подключить, просто копированием ошибку выдает:

    Arduino: 1.8.9 (Windows 10), Плата:"Arduino/Genuino Uno"

    C:\Users\vercl\Documents\Arduino\Servo\Servo.ino: In function 'void setup()':

    Servo:49:6: error: redefinition of 'void setup()'

    void setup()

    ^

    C:\Users\vercl\Documents\Arduino\Servo\Servo.ino:10:6: note: 'void setup()' previously defined here

    void setup() {

    ^
     
    Последнее редактирование: 10 авг 2019
  13. Daniil

    Daniil Гуру

    У вас что-то случилось или это ваше хобби?
     
    parovoZZ нравится это.
  14. Volt-Amper

    Volt-Amper Нерд

    Я начинающий, закал комплект 4WD smart Robot Car с алиэкспресса, комплектующие все есть, но уроков нет, чтобы человек не знающий взял скопировал код в программу и запустил, а потом уже можно и разобраться что и как работает, почему не пишут подробной инструкции от А до Я и готовой программой? Проблема в коде программы, выдает ошибку когда просто копирую код и вставляю в предыдущий скетч
     
  15. Daniil

    Daniil Гуру

    Отлично, если это хобби, то поймите, что вам никто не поможет с той шумихой, которую вы тут организовали.
    1. Почитайте закрепленное сообщение в любом разделе, обратите внимание как оформлять код.
    2. Не нужно столько сообщений писать
    3. Для начинающих есть набор матрешка где расписано от А до В.
    4. От Г до Ъ нужно изучать самостоятельно. Ардуинка хоть и игрушка, но со сложного проекта ее не изучить, начинайте с простых. Амперка.вики вам поможет.
    5. Сейчас, ваш способ получить помощь выглядит очень агрессивно и не красиво, как слон в посудной лавке.
    Успехов.
     
    ИгорьК нравится это.
  16. Volt-Amper

    Volt-Amper Нерд

    Слушай, я на другом форуме людям помогаю за просто так, пишу свои репортажи, оформляю темы, помогаю в вопросы-ответы за бесплатно, задал вопрос ответ и не хотят мне помочь никто, говорят покупай за деньги информацию это как? Я новичек мне должны мне помочь хотя бы с базовой информацией, нет такого не могу, есть не хочу этот да к вам и относиться, сам разберусь через год, если не помогли значит такой ресурс!
     
  17. ИгорьК

    ИгорьК Гуру

    Я дал ссылку на базовую информацию, товарищ новичок.
     
  18. Volt-Amper

    Volt-Amper Нерд

    Мне толку от той информации, там нет тех датчиков что мне нужны
     
  19. Daniil

    Daniil Гуру

    Попробую ещё раз.
    С таким отношением, что вам все всё должны тут будет только конфликт. Мы это знаем, попробуем его не обострять?
    Тут помогают, помогают бесплатно, НО без требования, что помощь должна быть бесплатна.
    Вот у продавца вы можете что-то требовать, если покупка оформлена официально. (нет я не намекаю, что если вы купите матрешку, то вам тут обязательно помогут. Я намекаю на китайца, у которого вы купили что-то, а на нас его теперь сваливаете)

    Чтобы разобраться с вашими датчиками нужно учиться. Чтобы научиться вам дали ссылки и ключевые слова - что читать, что искать.
    Начинать учиться со сложной задачи очень сложно) вы сейчас очень усложняете себе задачу.
     
    Volt-Amper нравится это.
  20. Volt-Amper

    Volt-Amper Нерд

    Просто нарисую схему и по пинам уже в скетче подставлю свои значения пинов, а с самими модулями разберусь сам по ходу подключения периферийного устройства)