各为大神们好,刚加入CSND就有一个小项目的问题想要咨询大家:
本次的项目是 用非特定人语音传感器LD3320 来控制 12V的直流电机(连接了LN298的电机驱动模块),又加了额外的一个触摸传感器想要增加一个控制模块。
想要实现的功能:语音控制电机的正反转。每次说上升之后,电机正转8秒停。每次说下降之后,电机反转8秒停。
触摸传感器也是实现一样的功能。
逻辑:触摸传感器和语音传感器可以单独触发,但是当语音控制上升之后,触摸传感器被触摸之后只能触发下降的指令,语音传感控制下降之后,如果这时候触发触摸按键的时候,只能触发上升的命令。
问题是:怎么把两个整合在一起?现在语音控制没有问题,但是没有办法像我设想的运行逻辑和触摸不起作用。。
恳请大神们帮我解决一下问题,跪谢!!!
#include <ld3320.h>
#include<PinMap.h>
#include<Wire.h>
VoiceRecognition Voice; //声明一个语音识别对象
//int i=0;
int input1 = 3; // 定义uno的pin 5 向 input1 输出
int input2 = 5; // 定义uno的pin 6 向 input2 输出
int input3 = 6; // 定义uno的pin 9 向 input3 输出
int input4 = 10;// 定义uno的pin 10向 input4 输出
#define S1 7//触摸开关口为7
unsigned char mode;
unsigned char temp;
void key_scan();
void setup()
{
pinMode(S1, INPUT); //输入
// 初始化各IO, 模式为OUTPUT 输出模式
pinMode(input1, OUTPUT);
pinMode(input2, OUTPUT);
pinMode(input3, OUTPUT);
pinMode(input4, OUTPUT);
//初始状态电机不转
digitalWrite(input1, LOW); //给低电平
digitalWrite(input2, LOW); //给低电平
digitalWrite(input3, LOW); //给低电平
digitalWrite(input4, LOW); //给低电平
Serial.begin(9600); //配置9600
Serial.print("Motor start!\n"); //Motor启动
Serial.print("Voiceread start!\n"); //声音识别启动
Voice.init(); //初始化VoiceRecognition模块
Voice.addCommand("shang sheng", 0); //上升到30度
Voice.addCommand("xia jiang", 1); //下降到180度初始状态
Voice.addCommand("shang", 2); //杂音
Voice.addCommand("sheng", 3); //杂音
Voice.addCommand("xia", 4); //杂音
Voice.addCommand("jiang", 5); //杂音
Voice.addCommand("zhuan", 6); //杂音
Voice.addCommand("san shi zhuan", 7);
Voice.addCommand("ke jin zhuan", 8);
Voice.addCommand("zhuan bu zhuan&#