arduino与肌电信号(传感器)的碰撞② 2021 7 20
生活随笔
收集整理的這篇文章主要介紹了
arduino与肌电信号(传感器)的碰撞② 2021 7 20
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.代碼詳解
①帶校準的與肌電傳感器相配的代碼
②讀取某個端口的值并打印
int analogPin = A3; // potentiometer wiper (middle terminal) connected to analog pin 3// outside leads to ground and +5V int val = 0; // variable to store the value read void setup() {Serial.begin(9600); // setup serial }void loop() {val = analogRead(analogPin); // read the input pinSerial.println(val); // debug valuedelay(1000); } void setup() {// initialize serial communication at 9600 bits per second:Serial.begin(9600); }// the loop routine runs over and over again forever: void loop() {// read the input on analog pin 0:int sensorValue = analogRead(A0);// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):float voltage = sensorValue * (40.0 / 1023.0);// print out the value you read:Serial.println(voltage); }③串口輸入舵機轉動相應的角度和不同的角度
#include <Servo.h> Servo myservo; // 創建一個伺服電機對象 //Servo myserv1; //Servo myserv2; //Servo myserv3; char inByte = 0; //串口接收的數據 int angle = 0; //角度值 String temp ;//臨時字符變量,又或者說是緩存用的吧 void setup(){ myservo.attach(9); //定義舵機的引腳為9,舵機只能是10,或者9引腳 Serial.begin(9600); //設置波特率 } void loop(){while (Serial.available() > 0) //判斷串口是否有數據{inByte = Serial.read();//讀取數據,串口一次只能讀1個字符temp += inByte;//把讀到的字符存進臨時變量里面緩存,//再繼續判斷串口還有沒有數據,知道把所有數據都讀取出來}if(temp !="" )//判斷臨時變量是否為空{angle = temp.toInt(); //把變量字符串類型轉成整型Serial.println(angle);} //輸出數據到串口上,以便觀察temp = "" ;//請看臨時變量myservo.write(angle); //控制舵機轉動相應的角度。delay(2000);//延時100毫秒myservo.write(0);delay(2000); }④舵機來回轉動
#include <Servo.h> Servo myservo; // 定義Servo對象來控制 int pos = 0; // 角度存儲變量 void setup() {myservo.attach(7); // 控制線連接數字7 } void loop() {for (pos = 0; pos <= 180; pos ++) { // 0°到180°myservo.write(pos); // 舵機角度寫入delay(5); // 等待轉動到指定角度}for (pos = 180; pos >= 0; pos --) { // 從180°到0°myservo.write(pos); // 舵機角度寫入delay(5); // 等待轉動到指定角度} }⑤與肌電傳感器相配的最簡單的一套代碼
```c #include <Servo.h> Servo servo1; void setup() {servo1.attach(3);Serial.begin(9600);} void loop() {int sensorValue = analogRead(A0);Serial.println(sensorValue);float voltage = sensorValue * (4.5 / 660.0);//不太懂Serial.println(voltage);if (voltage > 7.5) //7.5需要自己測一下找個合適的點{int val = map(voltage, 0, 1023, 0, 180); servo1.write(val); delay(20); }else {servo1.write(0);delay(20);} }⑥輸入不同舵機應該轉的角度并控制相應舵機進行運動
待更。。。
總結
以上是生活随笔為你收集整理的arduino与肌电信号(传感器)的碰撞② 2021 7 20的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】自己手写实现线性回归,梯度下
- 下一篇: Storm入门简介