EMG Sensor к Ардуино

Тема в разделе "Arduino & Shields", создана пользователем Tarata, 17 сен 2019.

  1. Tarata

    Tarata Нуб

    Всем привет .
    Я здесь новенький , мне нужна ваша помощь .
    Есть emg sensor , который я подклучил как в видео ниже , все работает кроме Serial Monitor (Монитор порта) . В видео есть фрагмент где выводятся значения от сенсора , но у меня нет . Что делать ? Я переписал все точь в точь.

     
  2. NikitOS

    NikitOS Король шутов Администратор

    Hi!
    Скорость монитора порта выбрана верно?
     
  3. Tarata

    Tarata Нуб

    Да конечно
     
  4. NikitOS

    NikitOS Король шутов Администратор

    Что значит "переписал"?
     
  5. Tarata

    Tarata Нуб

    коды как на видео. все работает, серво крутится при сжимании руки , но монитор порта нет
     
  6. NikitOS

    NikitOS Король шутов Администратор

    Я не понимаю, что значит "перепиисал"
    Вы его из видео списывали к себе?

    Скорость порта - 115200, режим NL&CR
    Все должно работать

    Вот код
    Код (Text):
    #include <Servo.h>

    //Threshold for servo motor control with muscle sensor.
    //You can set a threshold according to the maximum and minimum values of the muscle sensor.
    #define THRESHOLD 250

    //Pin number where the sensor is connected. (Analog 0)
    #define EMG_PIN 0

    //Pin number where the servo motor is connected. (Digital PWM 3)
    #define SERVO_PIN 3

    //Define Servo motor
    Servo SERVO_1;

    /*-------------------------------- void setup ------------------------------------------------*/

    void setup(){
     
      //BAUDRATE set to 115200, remember it to set monitor serial properly.
      //Used this Baud Rate and "NL&CR" option to visualize the values correctly.
      Serial.begin(115200);
     
      //Set servo motor to digital pin 3
      SERVO_1.attach(SERVO_PIN);
    }

    /*--------------------------------  void loop  ------------------------------------------------*/

    void loop(){

      //The "Value" variable reads the value from the analog pin to which the sensor is connected.
      int value = analogRead(EMG_PIN);

      //If the sensor value is GREATER than the THRESHOLD, the servo motor will turn to 170 degrees.
      if(value > THRESHOLD){
        SERVO_1.write(170);
      }

      //If the sensor is LESS than the THRESHOLD, the servo motor will turn to 10 degrees.
      else{
        SERVO_1.write(10);
      }

      //You can use serial monitor to set THRESHOLD properly, comparing the values shown when you open and close your hand.
      Serial.println(value);
    }
     
  7. Tarata

    Tarata Нуб

    да из видео списал. Какой код именно отвечает за то чтобы в мониторе порта показывалось то что на видео с 3:49 по 3:53
     
  8. NikitOS

    NikitOS Король шутов Администратор

    Код (Text):
    Serial.println(value);
     
     
  9. Tarata

    Tarata Нуб

    Опять привет . В мониторе порте показывает значение только 1023 , как быть ?
     
  10. sto7me7

    sto7me7 Нуб

    Привет , я себе тоже недавно приобрёл такой датчик , но инфы про него очень мало . Я хотел бы спросить , как ты установил электроды ? Я подключал также как на видео , однако значения у меня не менялись . Они были 1023 только когда я отключал один из электродов . Даже когда я нашёл другое видео чуть точнее - ничего не поменялось . Я могу быть неуверен только в подключении электродов (не нашёл мышцу) или в то что я настолько грязный(даже после ватки со спиртом ) что кожу датчик не пробивает . Надеюсь ты ответишь , а то ты единственный рускоговорящий человек занимавшийся этим которого я нашёл ...
     
  11. Ariadna-on-Line

    Ariadna-on-Line Гуру

    1. В "серьёзном" коде должны присутствовать команды настройки АЦП, например выбор референса, скорость оцифровки.
    2. У вас оцифровка и вывод на монитор находятся в главном цикле. В нем отсутствуют какие-либо задержки. Значит в АЦП и порт фигачат бесконечные команды/данные на полной скорости цикла. Не захлебнутся ли АЦП и порт в таком потоке ?
    3. Если постоянно 1023 - проверьте напряжение на пине Vref. Также проверьте напряжение на выходе сенсора.
     
    Последнее редактирование: 13 янв 2022
  12. akl

    akl Гуру

    все настройки делает ардуина
    как оно может захлебнуться в принципе? тем более что analogRead() зависает и ждет пока закончится измерение.
    действительно - начинать надо с того чтобы тыкнуть мультиметром
     
  13. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Ну тогда - не захлебнется ли монитор порта. Хрен редьки не слаще.
     
  14. akl

    akl Гуру

    насколько я понимаю, сериал тоже ждет пока всё пропихнется и никак захлебнуться не может.
     
  15. b707

    b707 Гуру

    иужики, не понятно, что вы обсуждаете,
    sto7me7
    своего кода не показывал.
    Код в #6 от Никитоса и это сообщение 2019года, не факт что
    sto7me7 делал так же
     
    Последнее редактирование: 13 янв 2022
  16. parovoZZ

    parovoZZ Гуру

    Почему он должен захлебнуться? Виртуальный ком порт влёгкую тянет мегабит.