产生不同频率的脉冲
Creating different frequency pulses
我想用我的uno创建同时工作的不同频率的脉冲。我刚刚设置了如下内容。当我在uno上执行程序时,两个函数都以相同的频率工作。我希望其中一个在1秒内创造一个高值,然后变为低值,另一个在1ms内创造高值,再变为低。这可能吗?如果是,那怎么办?
int dirPin = 8;
int stepPin = 9;
void setup()
{
pinMode(dirPin,OUTPUT);
pinMode(stepPin,OUTPUT);
}
void stepper()
{
digitalWrite(stepPin,HIGH);
delay(1);
digitalWrite(stepPin,LOW);
delay(1);
}
void dir()
{
digitalWrite(dirPin,HIGH);
delay(1000);
digitalWrite(dirPin,LOW);
delay(1000);
}
void loop()
{
//interrupts functions from here https://www.arduino.cc/en/Referenc/Interrupts
noInterrupts();
dir();
interrupts();
stepper();
}
您当前的代码不起作用,因为它按顺序调用dir()
和stepper()
,也就是说,它只在等待dir()
的整个周期两秒钟后才调用stepper()
。
要模拟同时调用两者,您应该执行以下操作:
void stepForOneSecond(){
for(int i = 0; i < 500; ++i){
digitalWrite(stepPin,HIGH);
delay(1);
digitalWrite(stepPin,LOW);
delay(1);
}
}
void loop(){
digitalWrite(dirPin,HIGH);
stepForOneSecond();
digitalWrite(dirPin,HIGH);
stepForOneSecond();
}
对stepForOneSecond
的调用将持续(大约)1秒,之后将切换"dirPin"的值。
相关文章:
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 在指针的帮助下,文本文件中单词的频率
- 函数计算用户按下按钮的频率
- 在条件变量中触发错误信号的频率是多少
- 如何在 c++ 中循环中使用频率变化的声音?
- 查找给定范围内最长连续 1 的频率
- 字母 字母频率
- WM_PAINT消息频率:C#(.Net Framework 4.7.2 WinForms)与C++
- 创建一个函数,返回给定单词在C++中的频率
- 如何期望通过使用Google Test(Mock)以特定频率调用函数
- 跟踪多个文件中一系列字符的频率
- 用于检测特定频率的直接显示滤波器
- 这句话是什么意思?半 += 字符串(频率[i] / 2, i + 'a');
- 如何使用C++中的频率表计算模式
- 如何计算数字 x 的频率
- 除了使用 clock() 函数之外,有没有更好的方法来以给定的频率生成/发布数据
- 如何在 c++ 中使用 FFT 从 32 位浮点数组中提取频率
- 来自单个数字输入的Arduino读取脉冲宽度频率和占空比
- 产生不同频率的脉冲
- C++ 频率响应<->脉冲响应