Нужна помощь новичку! по братски =)

Тема в разделе "Arduino & Shields", создана пользователем Gerusxew, 1 сен 2015.

  1. Gerusxew

    Gerusxew Нуб

    Всем привет!!! Друзья помогите пожалуйста. только купил ардуйно нано и все прибомбасы к ней(блютуз,реле и т.д) Идея такая хочу поставить в машину планшет как мультимедиа + хотелось бы реализовать программу для управления пневмоподвеской машиной.Машина 2114 подвеска самопал . В принципе труда не составит подключится к ней. Нужно помочь сделать скетч щас есть заготовка но он не работает ( В общем хотелось бы при нажатий кнопки и удерживание чтобы подавался сигнал как отпущу сигнал прекращался. Нужно 8 кнопок . Нашел готовую пытался переделать чтото пошло не так



     
    Последнее редактирование: 1 сен 2015
  2. DrProg

    DrProg Вечный нерд

    Вы хотите управлять подвеской через USB? И опубликуйте скетч правильно, на текстовым окном есть кнопка слева от кавычек, вставьте код через нее.
     
    ИгорьК нравится это.
  3. Gerusxew

    Gerusxew Нуб

    Хочу управлять по блютузу через ардуйну
     
  4. vvr

    vvr Инженерище

    пиши код, будем помогать
     
    Gerusxew нравится это.
  5. DrProg

    DrProg Вечный нерд

    Не так код вставили, нужно нажать кнопку СЛЕВА от кавычек (на ней написано "код") и вставить туда. Так читать будет удобнее и не пропадают некоторые символы.
     
    ИгорьК нравится это.
  6. Gerusxew

    Gerusxew Нуб

    Код (Text):
    int val;
    int IN1 = 4;
    int IN2 = 7;
    int EN1 = 6;
    int EN2 = 5;
    int LED = 13;
    int LED2 = 11;
    int LED3 = 12;
    int IN3 = 13;
    int IN4 = 14;
    int IN5 = 15;
    int IN6 = 16;
    int IN7 = 18;
    int IN8 = 17;

    void setup()
    {
      Serial.begin(9600);
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(EN1, OUTPUT);
      pinMode(EN2, OUTPUT);

      //используем 13 пин как индикатор включённой ардуины
      pinMode(LED, OUTPUT);
      pinMode(LED2, OUTPUT);
      pinMode(IN3, OUTPUT);
      pinMode(IN4, OUTPUT);
      pinMode(IN5, OUTPUT);
      pinMode(IN6, OUTPUT);
      pinMode(IN7, OUTPUT);
      pinMode(IN8, OUTPUT);
      digitalWrite(LED, LOW);

    }
    void loop()
    {
      if (Serial.available())
      {
        val = Serial.read();
       
        if (val == '5') // При нажатии клавиши "5"
        {digitalWrite(LED, HIGH);}
        if (val == '6') // При нажатии клавиши "6"
        {digitalWrite(LED,HIGH );}
        if (val == 'Y') // При нажатии клавиши "7"
          {digitalWrite(LED2,HIGH );}
        if (val == 'B') // При нажатии клавиши "8"
          {digitalWrite(LED3,HIGH );}

        // Задаём движение вперёд
        if (val == 'W') // При нажатии клавиши "W"
        {
          // Выводы конфигурируются согласно раьоте Motor Shield'а
          // Моторы крутятся вперед
          digitalWrite(IN7, HIGH);
          digitalWrite(EN2, HIGH);
          digitalWrite(IN1, HIGH);
          digitalWrite(IN2, HIGH);
        }

        // Задаём движение назад
        if ( val == 'S')
        {
          digitalWrite(EN1, HIGH);
          digitalWrite(EN2, HIGH);
          digitalWrite(IN1, LOW);
          digitalWrite(IN2, LOW);
        }

        // Задаём движение вправо
        if ( val == 'D')
        {
          digitalWrite(EN1, HIGH);
          digitalWrite(EN2, HIGH);
          digitalWrite(IN1, HIGH);
          digitalWrite(IN2, LOW);
        }

        // Задаём движение влево
        if ( val == 'A')
        {
          digitalWrite(EN1, HIGH);
          digitalWrite(EN2, HIGH);
          digitalWrite(IN1, LOW);
          digitalWrite(IN2, HIGH);
        }

        // Стоп режим
        // При отпускании клавиш в программе в порт шлется "T"
        if ( val == 'T') // При нажатии клавиши "T"
        {
          // Выводы ENABLE притянуты к минусу, моторы не работают
          digitalWrite(EN1, LOW);
          digitalWrite(EN2, LOW);
       
        }
        if ( val == 'N') // При нажатии клавиши "T"
        {
          // Выводы ENABLE притянуты к минусу, моторы не работают
        digitalWrite(IN4,LOW );
        digitalWrite(IN5,LOW );
        digitalWrite(IN6,LOW );
        digitalWrite(IN7,LOW );
        digitalWrite(IN8,LOW );
          digitalWrite(LED2,LOW );
          digitalWrite(LED3,LOW );
        }
      }
    }
     
  7. DrProg

    DrProg Вечный нерд

    Во. ;)
     
    ИгорьК нравится это.
  8. Mestniy

    Mestniy Гуру

    Жжеш! 18 пинов на нану:D
     
    Последнее редактирование: 24 сен 2015
  9. cthulhu

    cthulhu Нерд

    У нано 20 пинов можно использовать как выходы, D0-13 и A0-5
     
  10. Mestniy

    Mestniy Гуру

    И сбоить не будет?
     
  11. cthulhu

    cthulhu Нерд

    А должно?
     
  12. Mestniy

    Mestniy Гуру

    Насколько я знаю, да. У меня на уне теряться начинает с командами, когда 90 процентов портов подключишь?!:cool:
     
  13. cthulhu

    cthulhu Нерд

    Возможно косяк в чипе или коде
    Использую на atmega328P порты 2-12, работает без перебоев
     
  14. Mestniy

    Mestniy Гуру

    Может и в чипе. Но вероятность слетов больше, когда все пины загружены...
     
  15. Salk

    Salk Гик

    Даже китайская DDcduino с полной занятостью всех портов 0-A5 и с заполнением памяти под 98% ни разу не выдала ни одного сбоя. Она должна и обязана работать даже в таких условиях, жалеть её не нужно.
     
    Последнее редактирование: 24 сен 2015
  16. Tomasina

    Tomasina Сушитель лампочек Модератор

    нифига не в пинах дело. Вчерась был закончен проект, где китайская Uno рулила матрицей 16х32 (6 пинов под данные), двумя моторами с реверсом (4 пина), двумя сервами, 5-ю кнопками, микрофоном, дискретным входом и 6-ю ридерами RFID. Еще одного пина не хватило для зуммера, пришлось вместо него звуки издавать обмотками двигателя :D
    Усё работало замечтательно.
     
  17. Mestniy

    Mestniy Гуру

    Уболтали Речистые!