Fórum témák
- • TV-k tulajdonságai, vásárlás
- • Hűtőgép kompresszor
- • Hűtőgép probléma
- • Számítógép hiba, de mi a probléma?
- • Mosogatógép hiba
- • Erősítő mindig és mindig
- • Retro számítógépek
- • Villanyszerelés
- • Boombox javítás
- • Eredményjelző
- • Opel Astra elektromos hibák
- • Elfogadnám, ha ingyen elvihető
- • Gáz fogyasztás monitorozása
- • Mosógép vezérlők és általános problémáik
- • Audiofil, High End Audio
- • Transzformátor készítés, méretezés
- • Analóg oszcilloszkóp javítása
- • Dióda helyettesítés
- • Kapcsolási rajzot keresek
- • Vezetéknélküli termosztát
- • Oszcilloszkóp, avagy hogyan kell használni?
- • Kapcsolóüzemű táp 230V-ról
- • Rádióamatőrök topikja
- • Vicces - mókás történetek
- • A műhely (bemutató topik, ahol az alkotások készülnek)
- • Arduino
- • Felajánlás, azaz ingyen elvihető
- • Rádió áthangolása, OIRT - CCIR konverter
- • Kazettás magnó (deck) javítása
- • Kombikazán működési hiba
- • Klíma szervizelés, javítás
- • Klíma beszerelése, fűtés-hűtés házilag
- • Tápegységgel kapcsolatos kérdések
- • Fejhallgató erősítő
- • Labortáp javítás
- • MOSFET-ek
- • Sprint-Layout NYÁK-tervező
- • Tápegység
- • Androidos okos telefonok
- • Tervezzünk nyákot EasyEDA-val
- • Hegesztő inverter javítás
- • Videomagnó problémák
- • Ellenállás
- • Szobatermosztát bekötése
- • HESTORE.hu
- • Multiméter - miért, milyet?
- • Érdekességek
- • Villanymotor bekötése
- • Menetszámolós tekercselőgép házilag
- • Leválasztó transzformátor
- • Szigetelésvizsgáló
- • USB 3.2 HUB modul
- • Kamerás megfigyelőrendszer
- • Tranzisztorok helyettesítése
- • Borhűtő vezérlő panel
» Több friss téma
|
A klónok CH340 Soros-USB illesztőjének drivere ( Letöltés)
Most visszacseréltem az újabb elemet, és elfelejtett mindent.
Ki fogom cserélni az egész rtc modult, csak ki kell várni míg megjön.
Köszönöm a segítségeket.
Ha a program állítja át a bitet, akkor a modul kicserélése nem fog segíteni. A pontatlanságon remélhetőleg igen.
Ha ide teszem a programot, vagy a linkjét átnéznéd? A hozzászólás módosítva: Okt 22, 2019
Nem ismerem az Arduino-t, csak hírből. Viszont, a link jöhet, hátha más észreveszi benne a hibát.
Igen,szerintem is,azért is írtam a ritkát..Rtc-k 20-100ppm-es külső kaviccsal tudnak ám időt mérni...azokat lehetett jó pár mp-el beállítani erre-arra,gondoltam itt is megy valamennyire.
De lehetséges,hogy valami hamisítvány,akkor nem csodálkoznék.
Első körben az IC-t kellene tesztelni, egy alap programmal, semmi extra. Szerintem a programban van a hiba, eddig sosem panaszkodott senki. Pl. ha a programodban van ébresztő állítás, ami módosítja véletlenül az időt is (esetleg stoppolja az órajelet), vagy időközönként felfrissíted az IC-ben tárolt időt, az hibát okoz. Esetlef az IC panaszkodik, hogy a BAT lábára túl kevés feszültség jut, a tápja instabil, stb. Ha hamis lenne, már mindenhol ezt olvasnánk, itt is az lenne az első hozzászólás, hogy ja, nekem se volt pontos, ne használd. Mint bizonyos páratartalom mérő szenzoroknál is volt gyári hibás, nem kevés, de arról szerintem többen tudnak.
Pl. én a legolcsóbb órakvarccal is nagyobb pontosságot értem el, főleg, mikor beleprogramoztam egy kalibrálást, ami x naponta y mp-nyivel korrigálja a számolt időt. A hozzászólás módosítva: Okt 22, 2019
Én nem nagyon látom benne,hogy a control,control/status -t nézné-e,vagy írná...ha a defaultot nézzük akkor nem teszi 1-be a bitet,így elemről kellene továbbmennie.
Bár én nem így használnám az rtc-t.
Igen otthonra el lehet játszani a kalibrálással,de én általában elég sok mennyiséggel számolok,ott kiesik ez a lehetőség.
Amúgy a fórumon írják,hogy jött már 1-2db,ami nem is ment,vagy problémás volt,csere után ment minden.
És csak 1 költői jellegű kérdés: miért van az,hogy ha csak az Ic-t venném,akkor 2-3-szor drágább,mintha a paneles verziót?
Nem adsz kezdőértéket a változódnak?
135. sor:
//SYSTEM STATE
byte systemState; //0 = show time/date/temp, other = menu
...
Ezt az ismeretlen kezdőértékű változót vizsgálod aztán a 402. sortól:
switch (systemState) {
...
957. sorban simán felülírod az időt, ha véletlenül 17 az értéke:
case 17:
//menu 17
//EXIT
if (edgeButton1) {
//rising edge detected
Ide kellene beszúrni egy ellenőrző kérdést, hogy tényleg akarod a felülírást?
SetRtc(0, minute, hour, dayOfWeek, dayOfMonth, month, year); //set time and zero second
...
Bár csak gyorsan átfutottam a programot de,
Így szerintem simán felülírható az RTC véletlenül!
Köszi,
de nem értek, a programozáshoz "kicsit!" balga vagyok. A hozzászólás módosítva: Okt 23, 2019
Esetleg tudnál egy megbízható forrást ajánlani? Kb 6 darab kellene játékba, de nem akarok vagyonokat rákölteni.
Gondolom az egyikre van kereslet, a másikra nincs.Ugyanaz, mint Atmega8 vs. Attinyxx. Az Atmega8 sokkal többet tud, a darabár mégis annyi, mint a sokkal butább és kisebb Attinyxx-é.
Ahogy én tudom, egy IC gyártási költéségnek zömét a tokozás és a lábak adják, és csak kisebb részben a bonyolultsága...
Innen még nem vettem de az árak reálisak.
NKON
Illetve modellezéshez innen érdemes akkut választani:
Hobbyking
Nagyon köszönöm, megnézem!
Sziasztok!
Szeretnék egy kis segítséget kérni mert már a hajam kihullik. Tuti valamit csak nem veszek észre de már majdnem 1 hónapja szenvedek egy egyszerűnek tűnő dologgal.
Leírom röviden miről szól a dolog, tettem a fürdőmbe 8db kb 130db-os ledszalagot, ezek 5Vról mennek nagyon tuti és minden led a szalagon külön címezhető, színezhető. Gondolom eddig sokan ismeritek a dolgot. Na most 1db arduino nano édes kevés lenne hogy a 8 szalagot kezelje így azt csináltam hogy mindegyik szalag kapott egy M328-at arduino FW-el. Ezek össze vannak kötve megfelelő illesztéssel soros porton, mind a 8an figyelik az Rx lábat hogy mi folyik rajta. Ha megszólítom őket akkor a kapott adatok alapján beállítják a ledek színét.
pl.:
ID:6&LED:6&COLOR1:255&COLOR2:0&COLOR3:0&BR:155
Ezzel a 6. szalag 6. ledjét kellene RGB alapján(255,0,0) pirosra állítani 155 a fényerő.
Eddig rendben is lenne. Csak sajnos a megák(unok) nem hallgatnak a nevükre.
Szinte mindig megcsinálja mindenki amit mondok bárkinek, nagy az összetartás.. . ![](/pic/smile/biggrin.gif)
A vezérlését egy ESP8266 végezné majd.. etherneten vagy RS485 ön, de az még odébb van.
Jelenleg csak kiszórja a soros portra az infót nekik. Csatoltam a teljes UNO kódot és az ESP nek csak az ide vonatkozó részét mert hosszú és szörnyű.
Valaki tudna segíteni hogy hol lehet a gond?
#include <Arduino.h>
#include "FastLED.h"
#define BRIGHTNESS 100
#define NUM_LEDS 253
#define DATA_PIN 7
#define INPUT_SIZE 80
#define myid 8 // ID
byte lV; //led number
byte c1V; //color1 value RED
byte c2V; //color2 value GREEN
byte c3V; //color3 value BLUE
byte bV; //Brightness value
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200); // opens serial port, sets data rate to 9600 bps
FastLED. addLeds< WS2812, DATA_PIN, GRB> (leds, NUM_LEDS );
}
void loop() {
//ID:1&LED:1&COLOR1:RED&COLOR2:GREEN&COLOR3:BLUE&BR:89
//ID:0&LED:2&COLOR1:51&COLOR2:133&COLOR3:144&BR:155
char input[INPUT_SIZE + 1];
byte size = Serial.readBytes(input, INPUT_SIZE);
input[size] = 0;
char* command = strtok(input, "&");
while (command != 0)
{
char* separator = strchr(command, ':');
if (separator != 0)
{
*separator = 0;
++separator;
int value = atoi(separator);
if(strcmp(command, "ID") == 0){
if (value == myid || value == 0){
}else{
command = 0;
c1V = 0;
c2V = 0;
c3V = 0;
bV = 0;
lV = 0;
break;
}
}else if(strcmp(command, "LED") == 0){
lV = value;
}else if(strcmp(command, "COLOR1") == 0){
c1V = value;
}else if(strcmp(command, "COLOR2") == 0){
c2V = value;
}else if(strcmp(command, "COLOR3") == 0){
c3V = value;
}else if(strcmp(command, "BR") == 0){
bV= value;
}
leds[lV] = CRGB(c1V, c2V, c3V);
FastLED.setBrightness(bV);
FastLED.show();
}
command = strtok(0, "&");
}
}
És az ESP:
swSer.println("ID:1&LED:1&COLOR1:0&COLOR2:255&COLOR3:0&BR:55");
delay(50);
swSer.println("ID:2&LED:2&COLOR1:255&COLOR2:0&COLOR3:0&BR:155");
delay(50);
swSer.println("ID:3&LED:3&COLOR1:255&COLOR2:0&COLOR3:0&BR:155");
delay(50);
swSer.println("ID:4&LED:4&COLOR1:255&COLOR2:0&COLOR3:0&BR:155");
delay(50);
swSer.println("ID:5&LED:5&COLOR1:255&COLOR2:0&COLOR3:0&BR:155");
delay(50);
swSer.println("ID:6&LED:6&COLOR1:255&COLOR2:0&COLOR3:0&BR:155");
delay(50);
swSer.println("ID:7&LED:0&COLOR1:255&COLOR2:0&COLOR3:0&BR:155");
delay(50);
swSer.println("ID:8&LED:1&COLOR1:255&COLOR2:230&COLOR3:230&BR:45");
Az a gondod, hogy mindig 80 karaktert akarsz beolvasni:
#define INPUT_SIZE 80
Serial.readBytes(input, INPUT_SIZE);
Hol ott az a tömböd mérete, nem pedig az elküldött üzenetek hossza!
Ahogy a példádból látszik, nem is mindig egyforma hosszú üzeneteket küldesz.
Ezért nem az üzenet hosszát kellene figyelned, hanem a végén levő return karaktert.
Pl.:
String my_name;
void setup() {
Serial.begin(9600);
delay(2000);
Serial.println("What is your name?");
}
void loop() {
if(Serial.available()){
my_name = Serial.readStringUntil('\n');
Serial.println(my_name );
}
}
Amit kapu48 mondott és a 30. sorban a gondolom a karakterlánc végére a NULL karakter lenne, próbáld inkább így
Megpróbáltam az általad javasolt minta lapján át írni, de nem fordul le mert a "Serial.readStringUntil('\n');" nem tudja char* ba beolvasni.
A stringel pedig a strtok fut hibára.
#include <Arduino.h>
#include "FastLED.h"
#define BRIGHTNESS 100
#define NUM_LEDS 253
#define DATA_PIN 7
#define INPUT_SIZE 80
#define myid 1 // ID
//String data;
char* data;
byte lV; //led number
byte c1V; //color1 value RED
byte c2V; //color2 value GREEN
byte c3V; //color3 value BLUE
byte bV; //Brightness value
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200); // opens serial port, sets data rate to 9600 bps
FastLED. addLeds< WS2812, DATA_PIN, GRB> (leds, NUM_LEDS );
}
void loop() {
//ID:1&LED:1&COLOR1:RED&COLOR2:GREEN&COLOR3:BLUE&BR:89
//ID:0&LED:2&COLOR1:51&COLOR2:133&COLOR3:144&BR:155
if(Serial.available()){
data = Serial.readStringUntil('\n'); //cannot convert 'String' to 'char*' in assignment
char* command = strtok(data, "&"); //cannot convert 'String' to 'char*' for argument '1' to 'char* strtok(char*, const char*)'
//String command = strtok(data, "&"); //cannot convert 'String' to 'char*' for argument '1' to 'char* strtok(char*, const char*)'
while (command != 0)
{
char* separator = strchr(command, ':');
if (separator != 0)
{
*separator = 0;
++separator;
int value = atoi(separator);
if(strcmp(command, "ID") == 0){
if (value == myid || value == 0){
}else{
command = 0;
c1V = 0;
c2V = 0;
c3V = 0;
bV = 0;
lV = 0;
break;
}
}else if(strcmp(command, "LED") == 0){
lV = value;
}else if(strcmp(command, "COLOR1") == 0){
c1V = value;
}else if(strcmp(command, "COLOR2") == 0){
c2V = value;
}else if(strcmp(command, "COLOR3") == 0){
c3V = value;
}else if(strcmp(command, "BR") == 0){
bV= value;
}
leds[lV] = CRGB(c1V, c2V, c3V);
FastLED.setBrightness(bV);
FastLED.show();
}
command = strtok(0, "&");
}
}
}
Elvileg ez a rész kikerül belőle kapu48 változtatásával.
Próbáld ezt .
Serial.readBytesUntil('\n', input, INPUT_SIZE);
Persze, nem próbáltam
Kíváncsi leszek hogy használhatóbb e lessz és IDE nek e lehet majd nevezni az uj Arduino PRO IDE -t . Egyenlöre még nem tervezem a váltást Sloeber -röl ![](/pic/smile/smile.gif) de jó hír hogy fejlesztenek
Akkor debuggolni kellene, megnézni hogy sikeres e a tokenokra bontás, az if feltételek teljesülnek e. Ha idöközben nem sikerülne rájönni gondolom hogy az éjjel lessz egy kis idöm, ránézek
A 41. ik sorban ha a ö kap utasítást akkor nem csinál semmit, mindjárt utánna az else.
if(strcmp(command, "ID") == 0){
if (value == myid || value == 0){
}else{
A hozzászólás módosítva: Okt 24, 2019
Az 51. sortól az else if -ek teljesülnek ha az ID nem 0. Gondolom ezért teljesíti mindegyik a parancsot.
40.sor if(strcmp(command, "ID") == 0){
...
51.sor }else if(strcmp(command, "LED") == 0){
lV = value;
}else if(strcmp(command, "COLOR1") == 0){
c1V = value;
}else if(strcmp(command, "COLOR2") == 0){
c2V = value;
}else if(strcmp(command, "COLOR3") == 0){
c3V = value;
}else if(strcmp(command, "BR") == 0){
bV= value;
}
de esetleg alaposabban megnézem ha lesz idöm, lehet hogy figyelmenkívül hagytam valamit
Készül egy "Pro IDE" Arduino-hoz: Bővebben: Link
A debugger rész izgalmasan hangzik, aztán meglátjuk mi lesz belőle.
Én így oldottam meg a hasonló soros parancs értelmező feladatot. Pl.:
MP3Shield_Serial_Interpreter.ino
Bővebben: Link
Remélem hasznát veszed! A hozzászólás módosítva: Okt 25, 2019
|
|