JoyStick Shield V1.A

Тема в разделе "Arduino & Shields", создана пользователем Дип Шифр, 6 янв 2019.

Метки:
  1. Как запрограммировать этот шилд?
     
  2. Я споткнулся на нём и не знаю что делать. Если что у меня 3-годовой курс по робототехники закончен. И я не нуб.:mad::mad::mad:
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Ща подумаю
    [​IMG]
     
  4. Daniil

    Daniil Гуру

    А что подсказывает гугл?
     
  5. дык, мало закончить, надож еще диплом к голове перед сном прикладывать.
     
  6. ZAZ-965

    ZAZ-965 Гуру

    @Дип Шифр, ну и какие у вас проблемы? Под названием JoyStick Shield скрывается 2-х осевой джойстик (2 переменных резистора) и четыре кнопки, и как их "программировать" полон интернет примеров.
     
  7. Ну не смешите. Зачем не нубу примеры как программировать кнопку.
     
  8. Не. На английском не читаю и к кнопкам не знаю как подключить
     
  9. А на русском примеров мало
     
  10. а тогда чем 3 года занят был?
     
  11. ZAZ-965

    ZAZ-965 Гуру

    @Дип Шифр, начнем с того, как вы собирались использовать этот шилд? Примеры - кнопки и джойстик.
    @Пушной звер, наверное написанием лендинг пейджей, презентаций и ютуб роликов - вот и готов робототехнический стартап, ищем инвестора и гуглим как работать с кнопкой.
     
  12. Danil_2002

    Danil_2002 Гик

    Подключить просто. Для этого просто надеваешь этот шилд поверх платы(например Arduino Uno )
    Программировать, вот тебе два примера:

    На Си(Предпочтительнее):
    Код (C++):
    char simvol = '0';
    void read_button() // Читаем цифровые пины (2-8) на плате Arduino Uno
    {
      if (!(PIND&(1 << 2))) {simvol = 'A';}
      else if (!(PIND&(1 << 3))) {simvol = 'B';}
      else if (!(PIND&(1 << 4))) {simvol = 'C';}
      else if (!(PIND&(1 << 5))) {simvol = 'D';}
      else if (!(PIND&(1 << 6))) {simvol = 'E';}
      else if (!(PIND&(1 << 7))) {simvol = 'F';}
      else { simvol = 'N'; } // N - No */
    }
    void USART_init() // Настраиваем USART
    {
      // Настройка скорости передачи
      UBRR0L = 103;
      UBRR0H = 0;
      UCSR0B = 1 << TXEN0; // Разрешаем передачу по USART
      UCSR0C = (1 << UCSZ01)|(1 << UCSZ00); // 8-bit
    }
    void TransmitByte_USART(unsigned char data)
    {
      while(!(UCSR0A&(1 << UDRE0))); // Ждем освобождения буфера
      UDR0 = data; // Записываем в буфер
    }
    int main()
    {
      USART_init();
      while(1)
      {
        read_button();
        TransmitByte_USART(simvol);
      }
    }
     
    На Arduino:

    Код (C++):
    char simvol = 'N';
    void setup() {
      Serial.begin(9600);
    }

    void loop() {
      if (digitalRead(2) == 0) {simvol = 'A';}
      else if (digitalRead(3) == 0) {simvol = 'B';}
      else if (digitalRead(4) == 0) {simvol = 'C';}
      else if (digitalRead(5) == 0) {simvol = 'D';}
      else if (digitalRead(6) == 0) {simvol = 'E';}
      else if (digitalRead(7) == 0) {simvol = 'F';}
      else {simvol = 'N';}
      Serial.print("Button:");
      Serial.println(simvol);
      Serial.print("X: ");
      Serial.println(analogRead(A0));
      Serial.print("Y: ");
      Serial.println(analogRead(A1));
    }
    Скорее всего уже поздно, ну может все таки кому пригодиться

    Эти программы можно спокойно копировать и вставлять прям в Arduino IDE