【问题标题】:Restart a pushbutton counter重新启动按钮计数器
【发布时间】:2020-06-18 20:08:39
【问题描述】:

我必须用 Arduino 做两个计数器并将其显示在 LCD 上。但是计数器在达到 99 时必须重新启动。

我已经这样做了:

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

int boton_user = 0;
int boton_admin = 1;

int user_actual = 0;
int user_antes = 1;
int admin_actual = 0;
int admin_antes = 1;

int num_actual = 0;
int num_ultimo = 0;

void setup() {
  lcd.begin(16, 2);
  pinMode(boton_user, INPUT);
  pinMode(boton_admin, INPUT);
}

void loop() {
  user_actual = digitalRead(boton_user);

  if(user_actual != user_antes) {
    if(user_actual == HIGH) {

      if(num_ultimo == 99) {
        num_ultimo = 1;
      }else{
        num_ultimo = num_ultimo + 1;
      }
    }
    user_antes = user_actual;
  }

  admin_actual = digitalRead(boton_admin);

  if(admin_actual != admin_antes) {
    if(admin_actual == HIGH && num_actual < num_ultimo) {

      if(num_actual == 99) {
        num_actual = 1;
      }else{
        num_actual = num_actual + 1;
      }
    }
    admin_antes = admin_actual;
  }

  lcd.setCursor(0, 0);
  lcd.print("Siguiente: ");
  lcd.print(num_actual);
  lcd.setCursor(0, 1);
  lcd.print("Ultimo: ");
  lcd.print(num_ultimo);
}

但是当任何数字达到 99 时,它只会改变前 9(97、98、99、19、29、39、49、59、69、79、89、99...),第二次达到 99 它将变为 10 并重新开始 (...10, 11, 12...97, 98, 99, 19, 29...)。

我不确定自己做错了什么。

【问题讨论】:

    标签: if-statement arduino counter arduino-uno lcd


    【解决方案1】:

    你用Siguiente: 1覆盖Siguiente: 99,你得到Siguiente: 19,因为最后一个字符被保留了。

    在更新 LCD 之前,请致电 lcd.clear()

    【讨论】:

      猜你喜欢
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2021-07-21
      相关资源
      最近更新 更多