Witam! Mam następujący problem:
Robię program który przesyła dane dwoma pinami, robię to w kodzie binarnym więc muszę zrobić sobie konwerter do liczby decymalnej, lecz nastąpił taki problem, mianowicie zadeklarowałem zmienną bin, i wtedy wszystko działa poprawnie ale gdy dodałem drugą zmienną string wygląda to tak: wszystko się normalnie wgrywa, lecz ta zmienna jest nie do użycia, czyli nie da się jej wyświetlić czy coś do niej wpisać.
Oto kod z jednym stringiem: (działa on poprawnie)
#include <LiquidCrystal.h>
String bin = "-------";
unsigned long start;
LiquidCrystal lcd(10, 9, 3, 2, 1, 0);
void setup() {
lcd.begin(8, 2);
pinMode(7, OUTPUT);
pinMode(8, INPUT);
}
void loop() {
if (digitalRead(8) == HIGH)
{
bin = "";
bool i = true;
while (i == true)
{
digitalWrite(7, HIGH);
start = micros();
unsigned long r;
while (digitalRead(8) == HIGH) ;
r = micros() - start;
if ((r > 0) && (r <= 100)) bin += "0";
else if ((r > 100) && (r <= 200)) bin += "1";
else if ((r > 200) && (r <= 300)) bin += " ";
else bin += "r";
digitalWrite(7, LOW);
start = micros();
while ((digitalRead(8) == LOW) && (i == true))
{
r = micros() - start;
if(r > 400) i = false;
}
}
}
lcd.setCursor(0, 0);
lcd.print(bin);
}
A to kod w drugim stringiem: (i to on nie działa)
#include <LiquidCrystal.h>
String bin = "-------";
String napis;
unsigned long start;
LiquidCrystal lcd(10, 9, 3, 2, 1, 0);
void setup() {
lcd.begin(8, 2);
pinMode(7, OUTPUT);
pinMode(8, INPUT);
}
void loop() {
if (digitalRead(8) == HIGH)
{
bin = "";
bool i = true;
while (i == true)
{
digitalWrite(7, HIGH);
start = micros();
unsigned long r;
while (digitalRead(8) == HIGH) ;
r = micros() - start;
if ((r > 0) && (r <= 100)) bin += "0";
else if ((r > 100) && (r <= 200)) bin += "1";
else if ((r > 200) && (r <= 300)) bin += " ";
else bin += "r";
digitalWrite(7, LOW);
start = micros();
while ((digitalRead(8) == LOW) && (i == true))
{
r = micros() - start;
if(r > 400) i = false;
}
}
}
napis = bin;
lcd.setCursor(0, 0);
lcd.print(bin);
lcd.setCursor(0, 1);
lcd.print(napis);
}
Naprawdę proszę o pomoc. Pozdrawiam!