c - 有关串行打印的帮助 (Arduino C)

标签 c

void loop() {
  photoCell = analogRead(pin);
  time = millis();

if (photoCell >= 400){
timeon = millis();
led = 1;
while (analogRead(pin) >= 400) {
  timer = millis() - timeon;
   //Serial.print("On");
   //Serial.println(timer);

  }
}

if (photoCell <= 400) {
  timeoff = millis(); 
  led = 0;
  while (analogRead(pin) <= 400) {
    timer2 = millis() - timeoff;
    //Serial.print("Off");
    //Serial.println(timer2);

  }
}

 if (timer >= 175 && timer <= 200 && led == 1) {
    Serial.print("Char = ");
    Serial.println(".");
    codearray[i] = 8;
    i++;
  }
  if (timer >= 580 && timer <= 600 && led == 1) {
    Serial.print("Char = ");
    Serial.println("-");
    codearray[i] = 9;
    i++;
  }

这是我当前的代码,使用插入 A0 的光电管和连接到引脚 9 的 LED 可以正常工作。串行监视器根据时间显示我是否在闪烁点或破折号、莫尔斯电码。

但是..当我添加这段代码时

if (codearray[0] == 8 && codearray[1] == 8 && 
codearray[2] == 8 && codearray[3] == 0) {
  Serial.print("s");
}

显示器没有打印任何内容。这段代码填充了我设置的一个数组,这样我就可以按字母顺序打印出已破译的莫尔斯电码。我很确定我的逻辑是正确的。

看看是否有人理解为什么第二位代码会与第一位代码冲突,或者模拟输入或串行监视器可能出现什么问题。

最佳答案

你的问题在这里偏离主题;可能属于堆栈溢出。

但是很明显你忘记调用 Serial.Begin(9600);在设置()中;注: 9600是arduino默认波特率。

关于c - 有关串行打印的帮助 (Arduino C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26907869/

相关文章:

c - C 中的 Scanf/Printf...这是怎么回事?

c - MbedTLS 和 .NET BouncyCaSTLe 与 Curve25519 的互操作性问题

C - 这段代码 "work"如何/为什么?

c - 奇怪的(对我来说)函数声明

c - 16 岁代码中的 "error: initializer element is not constant"

c - 如何修复此搜索方法?

c - 强制 printf 使用两个字符

c - 使用 cstdio 读取键盘输入

java - 什么会导致 Java native 函数(在 C 中)在进入时出现段错误?

循环精确模型指针和数组