Jer*_*ers 5 c c++ windows arduino
我最近得到了一个Arduino(Uno),我想知道一些事情.
我的扬声器没有外接音量调节器,所以我想,也许连接一个电位器到Arduino,然后用它来控制音量(在Windows中).但这可能吗?
使用Visual C,C++(或更多'多平台'语言)读取Arduino引脚的值?然后使用它在Windows中设置音量级别(如果在Linux中也可以).
我认为这可能是有可能的,因为如果你使用:
Serial.println(analogRead([pin with potentiometer]));
Run Code Online (Sandbox Code Playgroud)
您可以将电位计的值输入到PC(通过USB).那么有没有办法在C或C++中读取这些值?
我知道如何通过C或C++在Windows中设置音量,我只需要知道是否有办法在(Visual)C或C++脚本中读出电位计的值.
小智 6
当然.并使用完全相同的方法:串行通信.由于我不是一个伟大的Windows专家,我不能给你写一个完整的Windows示例,但这里有一些片段可能会让你开始使用Unix(Linux,OS X等):
关于Arduino的代码:
#define POT_PIN 1
void setup()
{
Serial.begin(9600); // 9600 baud is more than enough
}
void loop()
{
int pot = analogRead(POT_PIN);
unsigned char byte = (pot + 2) >> 2; // round and divide by 4
Serial.write(pot);
delay(100); // or do something useful
}
Run Code Online (Sandbox Code Playgroud)
电脑上的代码:
#include <termios.h>
struct termios tio;
memset(&tio, 0, sizeof(tio));
// Open serial port in mode `8N1', non-blocking
tio.c_cflag = CS8 | CREAD | CLOCAL;
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 5;
int fd = open(device, O_RDONLY);
cfsetospeed(&tio, B9600);
cfsetispeed(&tio, B9600);
tcsetattr(fd, TCSANOW, &tio);
while (1) {
unsigned char byte;
read(fd, &byte, 1);
use_some_library_to_set_volume(byte);
}
Run Code Online (Sandbox Code Playgroud)