• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Chciałem pogadać z licznikiem.
#1
Pomysł był na zrobienie licznika kosztów energii elektrycznej. Trzeba było zaciągnąć informacje z licznika energii elektrycznej. Wykonałem interfejs ale miałem ciągły problem z odczytem. Użyłem CP2102 i terminala i nic. Użyłem potem arduino mega z LCD by wyświetlało wszystko co przyjdzie na UART i nadal nic. Dziwnym trafem jak podepnę FTDI pod USB wszystko działa ? Jaka jest pomiędzy nimi różnica ?

kod z arduino:

Kod:
#include <Adafruit_GFX.h>
#include <Adafruit_TFTLCD.h>

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
boolean flaga_nadawanie;
byte sendmsg[5] = { '/', '?', '!', 0x0D, 0x0A};

void setup () {

 tft.begin(0x9481);
 tft.setTextSize(2);
 tft.fillScreen(0x0000);
 Serial3.begin(300, SERIAL_7E1);
}

void loop () {
if (flaga_nadawanie == 0) nadawanie();
 while (Serial3.available()) {
   tft.print(Serial3.read()); tft.print(" ");
 }
}

void nadawanie() {

   for (int i = 0; i < 5; i++) {
     Serial3.write(sendmsg[i]);
   flaga_nadawanie = 1;
 }
}
 
Odpowiedź
#2
Sprawdź czy CP2102 działa poprawnie przy trzystu bodach.
Skoro FTDI śmiga, to raczej wątpliwe.
W zamierzchłych czasach, pisywałem sterowniki do LCD.
Takie proste znakowe. Jest w instrukcji producenta opisana procedura inicjalizacji.
I jak trafiłem na oryginalny KS0066, albo KS0062, to śmigało wszystko super, ale gdy trafiłem na chińczyka, to nie wstawał biedaczek.
Dopiero kombinacja z timingiem resetu linii, uruchamiała wyświetlacz.
Można znaleźć trochę moich opisów na elektrodzie, jak ktoś tam bywa.
Pytasz więc, czy jest różnica między FTDI, a CP2102?
O jest, i to ogromna.

Co to za licznik?
Po co wysyłasz na UART te dane, byte sendmsg[5] = { '/', '?', '!', 0x0D, 0x0A}; ?
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
byte sendmsg[5] = { '/', '?', '!', 0x0D, 0x0A}; - to pozostałośc po przemianach programu. Nie jest to istotne. Wysłać trzeba /?! cr lf by dostać odpowiedź

Dlaczego Arduino nic nie odbiera ? Źle wysyłam ?
 
Odpowiedź
#4
Co to za licznik?
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#5
(06-04-2018, 23:42)Robson Kerman napisał(a): Co to za licznik?

ME-172. Arduino nadal nie chce gadac. Nie potrafi na baud 300 ??
 
Odpowiedź
#6
Tam masz prędkość od 300 bit/sek do 19,200 bit/sek.
Czyli możesz ustawić BAUDRATE na 4800.

Teraz wychodzę z domu, ale wieczorem coś pokombinuję.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#7
(06-04-2018, 12:00)Burakko napisał(a): Dziwnym trafem jak podepnę FTDI pod USB wszystko działa ? Jaka jest pomiędzy nimi różnica ?

Taka, że FTDI jest zrobiony porządnie. Z różnymi innymi układami miałem problemy (PL2303 itp), z FTDI nigdy. Dobre sa układy CH3xx ale FTDI mają większe możliwości.
 
Odpowiedź
#8
Zostawcie to FTDI nie ono jest problemem ani rozwiązaniem. A baud rate wg. normy IEC1107 ma być na poziomie 300. Dopiero jeżeli odpowie licznik identyfikatorem możemy zmienić prędkość transmitancji. I licznik zmienia sprawdziłem. Problem tylko z tym że arduino nie gada. Co do CP2102 to zmierzyłem stan niski 1,7V wiec chyba to było problemem ale co z arduino ? Użyłem wszystkich czterech Seriali i nic

Kod:
==> /?!<0D><0A>
<== /ISk5ME172-0000
==> <06>050<0D><0A>
<==  -- STX --
 
Odpowiedź
#9
(08-04-2018, 07:52)Burakko napisał(a): )Co do CP2102 to zmierzyłem stan niski 1,7V wiec chyba to było problemem ale co z arduino ?
1.7 stanowczo za wysokie napięcie jak na poziom niski. Mierzyłeś oscyloskopem?
 
Odpowiedź
#10
Oscyloskopem ? To jak dziecku do piaskownicy dać Caterpillar zamiast łopatki Big Grin Olejmy te USB TTL. Nie są kwestią problemu.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości