core Postat Decembrie 30, 2022 Partajează Postat Decembrie 30, 2022 1 oră în urmă, biP a spus: Da, am incercat si asta, cu un max232: https://ibb.co/r7xK6c9. Si in plus fata de circuitul din poza, am adaugat un fir de la pinul 4 al conectorului RS232 (DTR) la pinul 7 al integratului max232 (T2OUT). Insa la varianta asta nici macar acei 0 de care am povestit mai sus nu ii primeam. Si din cauza asta am trecut la varianta cu modul de conversie Rs232 la TTL, pentru ca am crezut ca nu am facut eu circuitul bine P.S: pentru max232 am folosit condensatori ceramici (1uF, 25V) Teoretic ai putea sa incerci sa legi un pin de I/O de la arduino, la intrarea libera care duce la t2out, pe care ulterior sa o legi la pinul de DTR de pe mufa, ai putea sa sa-l poti alimenta astfel fara sa folosesti comunicatie TX in bucla. Link spre comentariu
biP Postat Ianuarie 6, 2023 Autor Partajează Postat Ianuarie 6, 2023 La 30.12.2022 la 18:25, UDAR a spus: Da, dar ar fi preferabil chiar în conector, pe pinul 2. Salut, am masurat pinul DTR din conector si am 9V.....deci nu de la asta e problema Nu stiu sincer ce poate sa fie Link spre comentariu
Elison Postat Ianuarie 7, 2023 Partajează Postat Ianuarie 7, 2023 Avand in vedere ce se spune in linkul cu senzorul, ca de fiecare dată când este detectată o particulă, un impuls este trimis pe linia serială, care este interpretat de portul serial al computerului ca octet, trebuie ca in program sa verificati periodic cati octeti se afla in bufer. Serial.available() returneaza numărul de octeți (caractere) disponibili pentru citire din portul serial. Acest bufer are 64 de octeți. Puteti verifica la fiecare secunda cati octeti sunt in buferul de receptie, eventual sa goliti acel buffer imediat dupa ce ati facut citirea. if (Serial.available() > 0) { int NrOctetiDinBuffer=Serial.available(); } Golirea buferului se poate face in acest caz doar cu: Serial.end ( ) ; Serial.begin (38400) ; Link spre comentariu
biP Postat Ianuarie 7, 2023 Autor Partajează Postat Ianuarie 7, 2023 Acum 11 ore, antemir a spus: "Golirea" bufferului, adica setarea pointerilor tail si head pentru buferul RX, se face cu read(). Nu are nici un rost ca intr-un program sa apelam Serial.end(). Poate doar daca vrem sa eliberam pinii folositi si sa-i utilizam in alt scop. Iar Serial.begin() se apeleaza o singura data, la pornire. Pentru "golire" este suficient: while(Serial.available()) Serial.read(); Deci fata de codul meu initial ar trebui doar sa inlocuiesc if-ul cu while? Link spre comentariu
biP Postat Ianuarie 22, 2023 Autor Partajează Postat Ianuarie 22, 2023 La 08.01.2023 la 11:25, antemir a spus: Incearca asa: (am pus si Serial1.write() in loop pentru a alimenta senzorul din tx-ul de la rs232) #include <LiquidCrystal.h> LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3); unsigned long prev_time; int pulses; void setup() { Serial1.begin(38400); lcd.begin(16,2); lcd.print("waiting ..."); prev_time=millis(); pulses=0; } void loop() { Serial1.write(0xA5); int cate=Serial1.available(); if(cate>0) { pulses+=cate; while(cate-- > 0) Serial1.read(); // golesc rx buffer } if(millis() - prev_time >= 60000) // afisez la fiecare minut { lcd.clear(); lcd.print(pulses); lcd.print(" CPM"); pulses=0; prev_time=millis(); } } Nu vrea nici asa.... In caz ca e ceva problema hardware si nu trimite senzorul impulsurile, as putea sa simulez cumva eu niste impulsuri care se trimit pe Rx? Ideea e ca trebuie sa dezvolt cat de mult codu de mai sus, si fara sa functioneze imi e destul de greu sa vad daca e bine ceea ce fac. Are cineva idee cum pot simula impusurile astea? Link spre comentariu
biP Postat Ianuarie 22, 2023 Autor Partajează Postat Ianuarie 22, 2023 Acum 29 minute, antemir a spus: Ce anume "nu vrea" ? Ce se afiseaza pe LCD ? Afiseaza doar 0. Si nu ar trebui, senzorul conectat la PC, da undeva la 10-15 CPM Atingi la GND pinul RX de la procesor. Sau pe partea de senzor (RS232) legi RX la TX. Mulțumesc, o sa incerc. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum