Wskaźnik nie działa nie reaguje na zmianę napięcia cały czas się świeci "spadek" napis "kolor" brak..dodatkowo w jednym miejscu pojawaiaja sie cyfry od 0-5 zmieniaja sie jak sekundy taki sekundnik od 0-5 i tak wkoło.
Urządzenie do którego potrzebny jest ten wskaźnik to wykrywacz metali, zamiast "spadek" podstawiłem "zelazo" a zamist wzrost "kolor". Na wyjściu wykrywacza teraz jest zwykła dioda led, którą się ustawia potencjometrem w pozycji tzw. rzazenia, wtedy na tej diodzie jest napiecie 2,5 v i troszkę sobie skacze miedzy 2,45v a 2,55v i w momencie wykrycia przedmiotu w ziemi przez sondę np. zelaznego gwoździa dioda gaśnie napięcie na niej spada do 2,3 V, tym sygnalizuje że to przedmiot żelazny i odwrotnie jest na metale kolorowe np. mosiądz dioda led sie zaczyna świecic jaśniej i tym sygnalizuje obecność metalu kolorowego, napęcie wzrasta do 2.7 v. I teraz pytanie bo może się tego nie da zgrać żeby wszystkie te informacje były wyświetlane na tym wyświetlaczu. Chciałbym wykonać taki wskaźnik dlatego że dioda led w dzień jest słabo widoczna, no i wykrywacz fajnie by wyglądał
, dodatkowo na wyświetlaczu chciał bym zrobić wskażnik naładowania akumulatora żelowego w procentach. Przesyłam fotkę jak by to miało wyglądać bo już troszkę próbowałem się bawić w programiste
te strzalki maja sie zapalać pod odpowiednik napisem w mmencie wykrycia zelaza to pod zelazem a jak nie ma nic to ma nie byc zadnej strzalki.
Tu jest ten Twoj kod z moim kodem który ustawia na wyświetlaczu ten napisy i wskazniki {strzalki} oraz graficzny akumulator z procentamai, ale tym narazie się nie zajmujmy dobrze bedzie jak na poczatek bedzie działał sam wskazniki metalu. Doszedłem w dwa dni jak się co rozmieszcza na wyświetlaczu
ale jak ten wskaźnik ma działać to już dla mnie czarna magia, może jak bym dłużej w tym posiedział to bym doszedł. Mam nadzieję że pomożesz
Kod:
// include the library code:
#include <LiquidCrystal.h>
float y = 0; // deklaracja zmiennej x ( zadeklarowana w tym miejscu jest widoczna dla całego programu )
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte znak[8] =
{
0x04, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x1F,
};
byte znak1[8] =
{
0x04, 0x1F, 0x10, 0x14, 0x1E, 0x14, 0x10, 0x1F,
};
byte znak2[8] =
{
0x04, 0x0E, 0x15, 0x04, 0x04, 0x04, 0x04, 0x04,
};
void setup()
{
lcd.createChar(1, znak);
lcd.createChar(2, znak1);
lcd.createChar(3, znak2);
lcd.begin(16, 2);
y = map(analogRead(A0) , 0, 1023 , 0, 5 ); // przypisanie zmiennej y wartości odczytanej z portu analogowego A0
}
void loop()
{
lcd.setCursor(6, 2);
lcd.print("");
lcd.write(1);
lcd.setCursor(4, 2);
lcd.print(" ");
lcd.write(2);
lcd.setCursor(7, 2);
lcd.print("100%");
lcd.setCursor(0, 0);
lcd.print("Zelazo");
if ( y > 2.5 ){
lcd.setCursor(2, 1);
lcd.print("");
lcd.write(3);}
lcd.setCursor(11, 0);
lcd.print("Kolor");
if( y < 2.5 ){
lcd.setCursor(13, 1);
lcd.print("");
lcd.write(3);}
else if( y == 2.5 ){
lcd.setCursor(11,0);
lcd.print(" ");
lcd.setCursor(0,0);
lcd.print(" ");}
y = map(analogRead(A0) , 0, 1023 , 0, 5 );
int z = map(analogRead(A0) , 0, 1023 , 0, 5 );
}