Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   855 / 855
(#) Bakman válasza papus51 hozzászólására (») Vas, 15:01 /
 
Akkor félreértettem.

Ebben az esetben valószínűleg az a gond, hogy a kontroller előbb kezdi (kezdené) vezérelni a kijelzőt, mint ahogy az észhez tért volna. Bekpacsoláskor legyen pl. egy másodpercnyi késleltetés, mielőtt a kijelzővel valamit is csinál az UNO.
(#) papus51 válasza Bakman hozzászólására (») Vas, 15:06 /
 
Ez már be van építve a progiba. Van egy késleltetés és utána egy 1 mp-es reset jel és újabb késleltetés.
Olyasmire emlékeztet a jelenség, mintha valahol lenne benne egy kondi ami nagy értékű ellenálláson keresztül csak lassan tud kisülni is meg feltöltődni is.
(#) Bakman válasza papus51 hozzászólására (») Vas, 15:12 /
 
Logikai analizátorral kell ellenőrizni a vezérlőlábakat, mi történik bekapcsoláskor. Konkrétabbat nem tudok mondani, egyszer-kétszer foglalkoztam ilyen kijelzővel de elengedtem, nekem nem jöttek be.
(#) papus51 válasza Bakman hozzászólására (») Vas, 15:17 /
 
Azért köszönöm.
Egy nem túl elegáns megoldás lenne. Monostabil időzítővel késleltetve adni egy reset jelet magának a kontrollernek, hogy egyetlen egyszer induljon újra néhány másodperc elteltével, csak hát....
A hozzászólás módosítva: Vas, 15:21
(#) lalca válasza papus51 hozzászólására (») Vas, 17:09 / 1
 
Hogy van bekötve, milyen libet használsz, hogy néz ki setup, enélkül...
(#) KoblogPerGyok válasza papus51 hozzászólására (») Vas, 18:27 /
 
Tényleg látni kellene a kódot, de legalább a Setup-részt.
Szerintem a hosszú idejű kikapcsoláskor a vezérlő memóriája szeméttel lesz teli és nincs rendesen inicializálva a setup-nál. A kód többi részénél lehet, hogy van olyan utasítás, ami megteszi esetleg, de nem frissül a képernyő. Gyors újraindításkor pedig már azzal frissül, ami a vezérlő memóriájában van.

Ez csak tipp, de ilyen fura bug -is lehet. A másik pedig, hogy az 1 sec késleltetés hol van? A vezérlő nem jelez vissza.

De csak 1x olvastam a leírását, és lehet nem ez a gond, mert azt írja, hogy auto reset van, mikor bekapcsol. (csak átfutottam)

De ami a leírásból kijött még, hogy 8 és 4 bites módja van az írásnak. Melyiket használod?
Ha négyet, akkor a szabadon lévő lábak mire vannak kötve?

Van ott busy flag is, meg sok minden ebben a vezérlőben, szóval lehet sok minden. Gondolom valamilyen lib-et használsz.
Ha nem lebegnek a lábak sehol sem, és a táp is stabil, akkor a lib-ben lehet hiba, vagy a lib-nek nincs meghívva valamelyik függvénye tisztességesen.

Bár nem Arduino-nál, de nálam okozott sok meglepetést az, hogy nem bírta a táp sem meghajtani az összes eszközt, illetve a közös GND hiánya is okozott már meglepetést.

No de mindez csak találgatás, több infó kellene, mint ahogy a többi fórumtárs már említette.
A hozzászólás módosítva: Vas, 18:35
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Vas, 18:42 /
 
Vagy tényleg kondi + ellenállás hiba van valahol, mint ahogy mondod, de akkor meg a kapcsolás kellene + táp.
(#) papus51 válasza KoblogPerGyok hozzászólására (») 8:54 /
 
Ez egy korábban készült program. Annyi különbség a setup-ban, hogy ebből hiányzik az 1 sec display setup.
Ugyan úgy zavaros a kijelző hosszabb kikapcsolás után.
A program eleje a loop-ig:

#include <Arduino.h>
#include <SoftwareSerial.h>
#include <pcf8574.h>
#include <U8g2lib.h>
#include <SPI.h>

U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R2, /* CS=*/ 10, /* reset=*/ 8);

PCF8574 ex1(0x39);

const byte interruptPin = 3; // Gomb
const byte rxtxPin = 6; // Bekapcsolás első lépés
const byte pttPin = 9; // Bekapcsolás második lépés
volatile bool buttonPressed = false; // Gomb állapotának jelzője
volatile bool processNeeded = false; // Indikálja a folyamat indítását
unsigned long processStartTime = 0; // Időzítéshez
bool turningOn = false; // Bekapcsolási vagy kikapcsolási folyamat
bool catError = false;
bool modPin = 3;
bool Flag1 = 0;
bool Flag2 = 0;
const int monitoredPin = 3;
bool lastState = HIGH;

SoftwareSerial CATSerial(2, 4); // RX, TX

unsigned long lastRequestTime = 0; // Előző lekérdezés időpontja
const unsigned long requestInterval = 1000; // 1 másodperces intervallum
float frequency; // Az aktuális frekvencia
float previousFrequency = 0; // Az előző frekvencia
int summa;
String band = "Unknown"; // Globális változó a sáv tárolására
String onair;
String data;
//int lastState = HIGH; // Kezdeti állapot
bool risingEdgeDetected = false;
bool fallingEdgeDetected = false;
bool flagCATEnabled = false; // A CAT engedélyezés vezérléséhez

void setup() {

pinMode(7, OUTPUT);
digitalWrite(7, LOW); // 12V switch
pinMode(interruptPin, INPUT_PULLUP); // Gomb alapállapota HIGH
pinMode(rxtxPin, OUTPUT);
pinMode(pttPin, OUTPUT);

digitalWrite(rxtxPin, LOW); // Kezdeti állapot
digitalWrite(pttPin, LOW);
delay(1000);
digitalWrite(7, HIGH); // 12V ON
pinMode(monitoredPin, INPUT);
CATSerial.begin(4800);

attachInterrupt(digitalPinToInterrupt(interruptPin), handleButtonPress, CHANGE); // Gomb megszakítás
u8g2.begin();
u8g2.initDisplay();
u8g2.clearBuffer();

u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_9x15B_tf); // choose a suitable font
u8g2.drawStr(1, 16, "DIPLEXER BLOCK");
u8g2.setFont(u8g2_font_8x13_tf);
u8g2.drawStr(6, 32, " CONTROLLER");
u8g2.setFont(u8g2_font_5x8_tf);
u8g2.drawStr(6, 46, " MADE BY HA4PL");
u8g2.setFont(u8g2_font_5x8_tf);
u8g2.drawStr(1, 63, "IS A CAT CABLE CONNECTED?");

} while ( u8g2.nextPage() );

delay(5000); //

}
A hozzászólás módosítva: 8:59
(#) KoblogPerGyok válasza papus51 hozzászólására (») 9:47 /
 
Ok, köszi!

Szerintem már sokan nézik nem csak én.
Tegnap elfelejtettem részletezni, hogy a busy láb nem lenne jobb? Azaz nem 1s fix figyelés, hanem egy while ciklussal figyelni ezt a lábat, mert az fordított logikával nézi, hogy foglalt-e az eszköz.

Nézegetem most kicsit.
Következő: »»   855 / 855
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem