- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Atomenergiával dübörögnek tovább az Amazon adatközpontok, SMR-ek is jöhetnek
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Az NVIDIA ipari AI-felhőt épít a németeknek, együtt az OpenAI és a Google
- Két új Ryzen közül választhatnak a kézikonzolok
- AMD vs. INTEL vs. NVIDIA
- HiFi műszaki szemmel - sztereó hangrendszerek
- Milyen belső merevlemezt vegyek?
- Melyik tápegységet vegyem?
- Milyen billentyűzetet vegyek?
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- ThinkPad (NEM IdeaPad)
- Milyen videókártyát?
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
válasz
lanszelot #19597 üzenetére
Én is a PID szabályozást javasolom, ha van rá energiád.
Ha nincs, akkor csinálhatsz "fapados PID" :-) szabályozást kézzel.
P: arányos, azaz, amikor még távol vagy a célértéktől, akkor erősen fűtöd, majd amikor közeledsz, akkor már kevésbé
D: derivált, azaz, ha azt látod, hogy gyorsan melegszik, akkor egy kicsit lassabban fűtöd, mert másként nagyon túlszalad
I: integrál, célértéktől való eltérések összegzése, mondhatnám átlag. Ha azt látod, hogy folyamatosan egy kicsit a célérték alatt van, akkor egy kicsit jobban fűtöd, vagy fordítva.
Nézd meg az alábbi ábrákat, ha érdekel az elmélete:
https://www.eet.bme.hu/~mizsei/mikrorejegy/The%20MEMS%20Handbook(Complete)/0077_PDF_C12.pdf
12.7, 12.10 ábra
Az SSR az "bedobozolt" triak, biztonsági szempontok miatt inkább azt használd, mint a meztelen triakot! Jól nézd meg a típusát, hogy milyen a vezérlő fesz, mert többféle létezik.
Mellesleg, vigyázz a 240 V-os fűtéssel, mert a 240 nagyot tudni ütni!Nekem, amikor kicsit módosítanom kellett egy készüléket, ahol a fűtés 240-ről toroid trafóval volt megoldva, és 80-100 V körül működött, azt mondtam, hogy 48 V fölött nem vagyok hajlandó bármiféle változtatást csinálni rajta, mert olyan szépen süt idekinn a nap, benn a rács mögött meg nem.
Vettem Aliról egy 240/48 V AC/DC tápot (bár erről is a Highway to Hell jut az ember eszébe), középen megcsapoltam a fűtőszálat, így már 48V is megtette a magáét. FET PWM-mel vezérelem. -
its_grandpa
tag
válasz
gya/352 #19594 üzenetére
Nem akarom elvenni a kedved de neked VS1003-as chippel szerelt modulod van (nekem is).
Reggeli (szellemi) tornaként megnéztem a datasheet-eket.
Yoradio kódban (VS1053Ex.h 168. sortól):// SCI_MODE bits
const uint8_t SM_SDINEW = 11 ; // Bitnumber in SCI_MODE always on
const uint8_t SM_RESET = 2 ; // Bitnumber in SCI_MODE soft reset
const uint8_t SM_CANCEL = 3 ; // Bitnumber in SCI_MODE cancel song
const uint8_t SM_TESTS = 5 ; // Bitnumber in SCI_MODE for tests
const uint8_t SM_LINE1 = 14 ; // Bitnumber in SCI_MODE for Line input
A 1003 sheet-ben: Bit 3 SM_OUTOFWAV Jump out of WAV decoding
A 1053 sheet-ben: Bit 3 SM_CANCEL Cancel decoding current file
Ettől még nem biztos, hogy magába fordul de ne lepődj meg ha "Cancel"-t nyomsz. -
lanszelot
addikt
Hello,
Van egy heating pad - om smd alkatrészekhez.
240V ről közvetlen üzemel. 270 fokra melegszik, semmi sem állíthato rajta.
Nano -val csináltam egy hőmérőt.
[kép]
Ugyanezzel a nanoval szeretném vezérelni a heat pad -ot, hogy kb 140 fokra melegedjen, utolsó 20 fokot lassabban melegítse, tartsa ott egy ideig /forrasztás/, majd hagyja lehülni.
Solid state relay -t javasoltak.
De elektromossaghoz alig értek. És Arduino -ban is nagyon kezdő vagyok.
Valakinek volna valami ötlete/tanácsa, hogyan tudnám megvalósítani? -
gya/352
tag
válasz
its_grandpa #19590 üzenetére
Első benyomás, hogy legalább most működik. Viszont valami nem túl stabil benne, mert sokszori állomásváltogatás után hajlamos rá hogy elkezdjen vartyogni.
Az meg rejtély marad hogy miért csak IP-címmel műküdik, miért nem megy a névfeloldás. -
gya/352
tag
válasz
razorbenke92 #19589 üzenetére
A Home Assistantnak mint okosotthon központnak van a hozzá csatlakozó ESP alapú mikrokontrollerekre egy rendszere, ez az ESPHome. Az ESPHome szoftverelemekből összeépíthető firmware. Ennek a rendszernek van médialejátszó komponense és a Home Assistant központ pedig tud stream-elni a hálózatra médiafolyamot. Szerintem ezt lehet alkalmazni ilyen multiroom rendszerre is.
A Home Assistanttal még én is csak ismerkedem, tapasztalatom ebben az irányban nincs még, de az ez iránt érdeklődőknek érdemes benézni az Okosotthon topikba. -
bimbula53
tag
válasz
razorbenke92 #19585 üzenetére
Én is örülnék neki mivel nem sikerült magyar fórumot találni a netrádió témára, ahol tapasztalatokat megosztani és segítséget is lehet kapni.
-
bimbula53
tag
válasz
gya/352 #19584 üzenetére
Én is sokat ki próbáltam programozási alapok nélkül. A befutó esp8266-ra "karadio + arduino nano + ssd1306 (0,96 fehér). Androidos app-al. Természetesen böngészőből is vezérelhető.
ESP32 -re is készült 2,8 -s színes kijelző VS-1003 2db encoderrel. Ezt váltottam le "Yoradio" projektre. Érdekessége a karadio app is használható hozzá. Ez némi ismereteket feltételez arduino ide használatához. Ha valamelyik érdekel akkor a tapasztalataimat nagyon szívesen megosztom. -
válasz
razorbenke92 #19587 üzenetére
De még ha pont ugyanott tartana is mind a műsorban, tehát a puffer tartalma ugyanaz is lenne, akkor is lehet olyan pici eltérés, ami miatt "visszhangos" lesz a lakás.
Ez a HA megoldás érdekesen hangzik. -
-
gya/352
tag
válasz
razorbenke92 #19587 üzenetére
Azt nem igy kell megoldani, hanem okosotthonközponttal. Home Assistant-tal.
-
-
válasz
razorbenke92 #19585 üzenetére
Az nem baj, hogy nem lesznek szinkronban?
-
válasz
gya/352 #19584 üzenetére
Egyébként örülök, hogy pörög ez a netrádió téma itt, mert nekem is van tervem ilyesmivel. Nekem az a tervem, hogy a házban minden valamirevaló hangfalhoz rádobok aux-ra egy ESP alapú netrádió vevőt. A cél, hogy ha kell, az egész házban szólhasson ugyanaz a forrás kellemes hangerőn anélkül, hogy egy kitüntetett helyen üvöltené be a házat.
-
gya/352
tag
válasz
bimbula53 #19577 üzenetére
Nem ragaszkodok hozzá.
Előtte már építettem egy egyszerűt ESP8266-tal, és továbblépésként találtam ezt.
Egyszerűnek tűnt...hát nem lett az, de amikor megakadtam a saját korlátaimban, és beírtam ide, a topiktársak rendes kis brain-storming-ot indítottak el és érdekes volt végigjárni ezt az utat, nem akartam átlépni másik projectre. De ha van más javaslatod kérlek ne tartsd magadban. Annyit megnéztem korábban hogy már azt sem tudom melyik lehetett volna esetleg még befutó. -
Laurencius
újonc
Azért írtam oda, hogy akkor a képernyő elforgatása... A képernyőt - vagyis a kijelzőt - "fektetve" használnám, mint ahogy a számítógépem képernyőjét (monitorját).
Nekem kifejezetten monokróm - fekete megjelenítés, és világító háttér - kijelzőre lesz később szükségem. Ha nem lesz hozzá szerencsém, akkor természetesen a meglévő színes kijelzőt használom majd úgy, ahogy most javaslod.
Úgy tűnik válaszodból, hogy valamit lehet kezdeni a maxscroll utasítással... -
válasz
Laurencius #19580 üzenetére
Egyelőre kipróbálni még nem tudom a javaslatokat, mással van teli az asztalom.
Nekem ez nem probléma.
a képernyő jobbra-balra mozgatása nem egyenértékű-e a képernyő görgetésével
Nem, ha vertikális scroll-ról van szó. Neked horizontális kell.
vajon a korábban jelzett színes kijelző helyet tudnék-e alkalmazni monokróm LCD-t?
Elméletileg nincs akadálya szerintem, a kódban van mód grayscale kijelzőt beállítani, de ha látni is szeretnél rajta (monokróm=1bit színmélység) valamit, akkor ditherelni kell a képet.
-
Laurencius
újonc
Egyelőre kipróbálni még nem tudom a javaslatokat, mással van teli az asztalom. De ha van egy kis időm, akkor keresgélek a lehetőségek között. Ilyen például a következő:
vajon szerinted a képernyő jobbra-balra mozgatása nem egyenértékű-e a képernyő görgetésével, illetve fel lehetne-e valahogy használni az én célom megvalósítására?for (uint16_t i = 0; i < maxscroll; i++) {
tft.vertScroll(0, maxscroll, i);
delay(10);}Persze, ehhez a képernyőt el kell fordítani:
tft.setRotation(r); //setRotation(uint8_t r)
Ez a kód elforgatja a képernyőt: 0=0, 1=90, 2=180, 3=270.
Persze az is fontos kérdés számomra, hogy vajon a korábban jelzett színes kijelző helyet tudnék-e alkalmazni monokróm LCD-t? A Google-n keresgélve a rengeteg típus között épp csak azt nem tudom, hogy melyiket lehetne ehhez az Arduino összeállításhoz minél kevesebb, vagy semennyi kód átírással használni... -
its_grandpa
tag
válasz
vargalex #19578 üzenetére
Igen, nem szép dolog ilyet csinálni, igazad van.
"Sportolok" a VSCode-al , érdekes eredményre jutottam (nem kötöttem össze a VS1003 board-al az ESP-met). Lehet emiatt a Config weboldalán csak 6 sor van a prefs-ből.
Kézből beírva a Control-on azonban csatlakozik szépen.D: Radiofuncs cmd is 1
D: Connect to host icast.connectmedia.hu/5001/live.mp3
D: send GET command
...
D: Switch to HEADER
D: Headerline: Server: nginx
D: Headerline: Content-Type: audio/mpeg
D: Headerline: Connection: close
D: Headerline: icy-br: 128
D: Headerline: ice-audio-info: bitrate=128;samplerate=44100;channels=2
D: Headerline: icy-br: 128
D: Headerline: icy-name: Retro Radio
Mondjuk most magába fordult erősen az ESPE (39389) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
abort() was called at PC 0x400f6e3c on core 0
Nézegetem kicsit még de nem tudom megér-e ez ennyit.
-
vargalex
félisten
válasz
its_grandpa #19574 üzenetére
Azért ez az IP-re feloldás nem ilyen egyszerű. Pl. az általad említett domain mögött két IP is van:
[gavarga@gavarga-5500 ~]$ drill icast.connectmedia.hu
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 15341
;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; icast.connectmedia.hu. IN A
;; ANSWER SECTION:
icast.connectmedia.hu. 7 IN A 109.199.62.243
icast.connectmedia.hu. 7 IN A 109.199.61.243
;; AUTHORITY SECTION:
;; ADDITIONAL SECTION:
;; Query time: 12 msec
;; SERVER: 127.0.0.53
;; WHEN: Tue Mar 7 10:06:34 2023
;; MSG SIZE rcvd: 7
Ha az egyiket beégeted, de éppen nem megy, akkor nem tud fallback-olni a másodikra. Persze lehet, hogy éppen ilyen esetben nem megy a kollégának csak másodikra...
-
bimbula53
tag
"gya/352" fórumtárshoz lenne 1kérdésem: miért ragaszkodik az Edzelf projekthez? Léteznek olyan projektek amiben Te magad szerkeszted külön a listát. A "https"-el kezdödő streamingeket nem igazán kezelik, de ki lehet kerülni, hogy lejátszható legyen pl: Retró rádió = http://icast.connectmedia.hu/5001/live.mp3 http://icast.connectmedia.hu:80/5001/live.mp3
-
válasz
its_grandpa #19575 üzenetére
Ebből kéne egy ebook, csak sehol sem találtam.
-
its_grandpa
tag
Én megvenném ha nem lenne egy nevemre dedikált példányom a szerzőtől
~ 4.000.- et simán megér [link] -
its_grandpa
tag
#19564 gya/352 Látom,nézem
#19569 Aryes
>> Az adó behangolásáért és a lejátszásért felelős kódot addig kell ismételni, amíg a "Song stopped incorrectly!" hiba jelentkezik.
Rossz hírem van. A VS1053.cpp-ben a void VS1053::stopSong() ezt (majdnem) mindig kiírja.
Ha nem ezt akkor ezt "Song stopped correctly after %d msec"-et.#19573 Aryes
Nem kell másik router, ki kell hagyni a DNS-t.
ping -a icast.connectmedia.hu
Reply from 109.199.62.243:
Cserélni kell a preset_00 = icast.connectmedia.hu/5001/live.mp3-at
preset_00 = 109.199.62.243/5001/live.mp3-raEgyébként nem értem a programozó logikáját, sorok a main.cpp-ból:
1409 bool connecttohost() fv. ,ami ugye vagy true vagy false lesz.3428 void radiofuncs() fv. ezen belül
3438 case QSTARTSONG:
// igy indul, ez látszik a pastebin-en is 21:00:47.824 -> D: Radiofuncs cmd is 1
3444 connecttohost() ;
3445 connected = true ;Miért nem így ? connected = connecttohost() ;
Lehet ma előtúrom hozzá a hw-t és kipróbálom, csak forrasztanom is kell.
ps. ez a bool connecttohost() fv. egyre kevésbé tetszik, a 1484-es dbgprint-et meg kellene csinálnia szerintem, de nem teszi.
-
gya/352
tag
00 - Naxi - elsőre indul
01 - Easy Hits Florida - másodikra megy
02 - CLASSIC ROCK MIAMI - érvénytelen link
03 - Magic Oldies Florida - érvénytelen link
04 - Magic 60s Florida - érvénytelen link
05 - Classic Rock Florida - érvénytelen link
06 - Radio 1, NL - másodikra megy
07 - 1.FM - GAIA - elsőre indul
08 - Skonto - érvénytelen linkPl ez az adó nincs benne a listában; 1a-60er.radionetz.de/1a-60er.mp3 másodikra megy
vagy ezt elsőre lejátsza mp3.magic-radio.net/320
Lehet hogy a webcím struktúrájával van gondja? -
gya/352
tag
válasz
bagarol #19567 üzenetére
Ha megnézed a paste.bin fájlban, amit linkeltem feljebb....
21:00:47.824 -> D: Connect to host icast.connectmedia.hu/5001/live.mp3
21:00:47.824 -> D: Connect to icast.connectmedia.hu on port 80, extension /5001/live.mp3
.... 80-as porton csatlakozik.
És ne mondd hogy pont azért nem játsza le mert a 80 porton próbálkozik, ugyanis böngészőből simán lejátsza így is.Az eredeti config fájlban ilyen adók vannak:
preset_00 = 109.206.96.34:8100 # 0 - NAXI LOVE RADIO, Belgrade, Serbia
preset_01 = airspectrum.cdnstream1.com:8114/1648_128 # 1 - Easy Hits Florida 128k
preset_02 = us2.internet-radio.com:8050 # 2 - CLASSIC ROCK MIAMI 256k
preset_03 = airspectrum.cdnstream1.com:8000/1261_192 # 3 - Magic Oldies Florida
preset_04 = airspectrum.cdnstream1.com:8008/1604_128 # 4 - Magic 60s Florida 60s Classic Rock
preset_05 = us1.internet-radio.com:8105 # 5 - Classic Rock Florida - SHE Radio
preset_06 = icecast.omroep.nl:80/radio1-bb-mp3 # 6 - Radio 1, NL
preset_07 = 205.164.62.15:10032 # 7 - 1.FM - GAIA, 64k
preset_08 = skonto.ls.lv:8002/mp3 # 8 - Skonto 128kHa jól emlékszem csak a GAIA-t meg az elsőt inditja el elsőre.
Kicsit furcsa lenne ha a fejlesztő olyan adókat rak be példának amiket le sem tud játszani.Szerk:
OK...van néhány közte amelyik link már nem érvényes. -
válasz
gya/352 #19566 üzenetére
Ha máshogy nem, akkor meg kell kínálni kicsit a programot.
Az adó behangolásáért és a lejátszásért felelős kódot addig kell ismételni, amíg a Song stopped incorrectly! hiba jelentkezik. Persze észszerűen: néhány próbálkozás után abbahagyni, különben egy nem létező/hibás link után végtelen ciklusba futna a program. -
gya/352
tag
Az a bosszantó hogy van olyan állomás amit gond nélkül el kezd lejátszani akár induláskor preset beállítás alapján, akár kiválasztás alapján; és van olyan amit meg nem. És természetesen ami nekem kellene az a nem kategóriában van.
Most két adó van a presetben:
preset_00 = icast.connectmedia.hu/5001/live.mp3 # 1 - Retro Radio
preset_01 = 205.164.62.15:10032 # 2 - 1.FM - GAIA, 64kAz elsőt nem tudja csak többszöri indításra lejátszani, a másodikat mindig csont nélkül elinditja.
-
gya/352
tag
válasz
its_grandpa #19499 üzenetére
Megtettem:
[link] -
ekkold
Topikgazda
válasz
Harcipocok84 #19559 üzenetére
Nem mondanám, hogy rutinos vagyok PID -ben, de a forrasztóállomásomban leprogramoztam a PID szabályzást - és egész jól sikerült.
-
válasz
Harcipocok84 #19559 üzenetére
Nyugodtan írd le, aztán a megoldást is, tanuljunk együtt!
-
Harcipocok84
tag
Sziasztok!
PID vezérlésben mozog valaki?
Lenne egy Arduinos PID-es projektem és felmerült bennem pár kérdés.
Gondoltam előtte megkérdezem, mert ha nincs akkor nem írom le -
-
lanszelot
addikt
igen, #19544 így telepítettem.
weiss:
igen, de akkor a blink se megy fel rá
ATmega328PB -t kell használnom semmi mással nem működik.ennél, ha loop ba rakom a kiírást akkor folyamatosan odébb gyalogoltatja , és egyidő után kimegy a kijelzőből.
hogyan tudom állandó helyre kiíratni?jelenleg itt tartok, de
- gyalogol a felirat,
- és nem kap értéket a hőmérőtől:#include <Adafruit_SSD1306.h>
#include <splash.h>
#include <max6675.h>
//Outputs from 6675 to arduino uno pins.
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
Serial.begin(9600);
Serial.println("MAX6675 test");
// wait for MAX chip to stabilize
delay(500);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32
display.display();
delay(2000);
}
void loop() {
// For the MAX6675 to update, you must delay AT LEAST 250ms between reads!
delay(1000);
display.clearDisplay(); //this line to clear previous logo
display.setTextColor(WHITE); //without this no display
display.print("C = ");
display.print(thermocouple.readCelsius());//your TEXT here
display.display(); //to shows or update your TEXT
}
-
-
lanszelot
addikt
válasz
bagarol #19549 üzenetére
Hello,
Ezt nem értem.
Ma kezdtem.
Csak próbálom megérteni a dolgot.
C++ nagyon az alapok vannak csak meg.
/változó, tömb, loop, függvény, stb. legalapabb dolgok/
Fogalmam sincs hogy tudok egy eszközt működésre bírni.
Most próbálok rájönni.Találtam ezt, és tökéletesen működik.
Tehát a kódokkal van a gond, nem a hardwerrel.Az eredeti kérdésem még mindig ez lenne.
Itt van az ino file, amit le lehet tölteni.
Mindenem meg van hozzá, csak hibás a program. -
-
olli
tag
[link] rtc_master
[link] oled könyvtár
[link] szintén,
ezek hiba nélkül fordítódnak esp32+ds3231 kódban.
Ami nem sikerül, az aktuális dátum/idő másnap, reset után, csak a fordítás időpontját mutatja.
25.50 C
20.25 C
32.00 C
Sending packet: 10
Saturday, March 04 2023 20:04:17
Mai állapot.
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress D0 = { 0x28, 0x31, 0xBF, 0x29, 0x07, 0x00, 0x00, 0x7D }; // "T1"
DeviceAddress D1 = { 0x28, 0x4F, 0x8E, 0x2A, 0x07, 0x00, 0x00, 0x37 }; // "T2"
/* for normal hardware wire use above */
#include <Wire.h>
#include <RtcDS3231.h>
RtcDS3231<TwoWire> Rtc(Wire);
// handy routine to return true if there was an error
// but it will also print out an error message with the given topic
bool wasError(const char* errorTopic = "")
{
uint8_t error = Rtc.LastError();
if (error != 0)
{
Serial.print("[");
Serial.print(errorTopic);
Serial.print("] WIRE communications error (");
Serial.print(error);
Serial.print(") : ");
switch (error)
{
case Rtc_Wire_Error_None:
Serial.println("(none?!)");
break;
case Rtc_Wire_Error_TxBufferOverflow:
Serial.println("transmit buffer overflow");
break;
case Rtc_Wire_Error_NoAddressableDevice:
Serial.println("no device responded");
break;
case Rtc_Wire_Error_UnsupportedRequest:
Serial.println("device doesn't support request");
break;
case Rtc_Wire_Error_Unspecific:
Serial.println("unspecified error");
break;
case Rtc_Wire_Error_CommunicationTimeout:
Serial.println("communications timed out");
break;
}
return true;
}
return false;
}
#include <Arduino.h>
#include "Wire.h"
#include "oled.h"
#include <WiFi.h>
#include "time.h"
#include <LoRa.h>
#include "secrets.h" // WiFi SSID & password
#define SCK 5 // GPIO5 -- SX1278's SCK
#define MISO 19 // GPIO19 -- SX1278's MISO
#define MOSI 27 // GPIO27 -- SX1278's MOSI
#define SS 18 // GPIO18 -- SX1278's CS
#define RST 14 // GPIO14 -- SX1278's RESET
#define DI0 26 // GPIO26 -- SX1278's IRQ(Interrupt Request)
#define BAND 433E6
unsigned int counter = 0;
#define RTC_ADDRESS 0x68 // I2C eszköz címe
String rssi = "RSSI --";
String packSize = "--";
String packet ;
struct tm timeinfo;
static char msg[20]; // character buffer
OLED display = OLED(4, 15, 16, 0x3C, 128, 32, true); // SSD1306
void setup() {
pinMode(16,OUTPUT);
pinMode(25,OUTPUT);
digitalWrite(16, LOW); // set GPIO16 low to reset OLED
delay(50);
digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high
Serial.begin(115200);
while (!Serial);
SPI.begin(SCK,MISO,MOSI,SS);
LoRa.setPins(SS,RST,DI0);
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
Serial.println("init ok");
Wire.begin();
display.begin();
display.clear();
display.draw_string(4, 8, "RTC clock", OLED::DOUBLE_SIZE);
display.display();
//------- Initialize the Temperature measurement library--------------
sensors.begin();
sensors.setResolution(D0, 10); //T1
sensors.setResolution(D1, 10); //T2
}
void loop() {
sensors.requestTemperatures();
float T1 = sensors.getTempC(D0);
float T2 = sensors.getTempC(D1);
Serial.print("Sending packet: ");
Serial.println(counter);
// send packet
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
digitalWrite(25, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(25, LOW); // turn the LED off by making the voltage LOW
delay(1000);
getTime(&timeinfo); // display time/date
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
RtcTemperature temp = Rtc.GetTemperature();
if (!wasError("loop GetTemperature"))
{
temp.Print(Serial);
// you may also get the temperature as a float and print it
// Serial.print(temp.AsFloatDegC());
Serial.println(" C ");
}
display.clear();
strftime (msg, 15, "%Y-%b-%d %a ", &timeinfo);
display.draw_string(16, 1, msg); // Display date
strftime (msg, 10, "%T ", &timeinfo); // Display time
display.draw_string(8, 12, msg, OLED::DOUBLE_SIZE);
display.display(); // Refresh screen
delay(3000);
display.clear();
display.setCursor(8,0);
display.println("T1= ");
display.setCursor(30,0);
display.println(T1);
display.setCursor(60, 0);
display.println(" C");
display.setCursor(8,12);
display.println("T2= ");
display.setCursor(30,12);
display.println(T2);
display.setCursor(60, 12);
display.println(" C");
display.display();
Serial.print(sensors.getTempC(D0));
Serial.println(" C");
Serial.print(sensors.getTempC(D1));
Serial.println(" C ");
}
//--- Convert decimal numbers to BCD -----------------------
byte decToBcd(byte val) {
return ( (val / 10 * 16) + (val % 10) );
}
//--- Convert BCD numbers to decimal ----------------------
byte bcdToDec(byte val) {
return ( (val / 16 * 10) + (val % 16) );
}
/*--- Set RTC time/date ------------------------------------
void setTime(struct tm* time) {
Wire.beginTransmission(RTC_ADDRESS);
Wire.write(0); // set register pointer to 00h
Wire.write(decToBcd(time->tm_sec)); // set seconds
Wire.write(decToBcd(time->tm_min)); // set minutes
Wire.write(decToBcd(time->tm_hour)); // set hours
Wire.write(time->tm_wday + 1); // set day of week (1=Sun, 7=Sat)
Wire.write(decToBcd(time->tm_mday)); // set date (1 to 31)
Wire.write(decToBcd(time->tm_mon) + 1); // set month
Wire.write(decToBcd(time->tm_year - 100)); // year from 2000 (0 to 99)
Wire.endTransmission();
}*/
//--- Read time/date from RTC ------------------------------
void getTime(struct tm* time) {
Wire.beginTransmission(RTC_ADDRESS);
Wire.write(0); // a kiolvasás kezdőcímének beállítása
Wire.endTransmission(false);
Wire.requestFrom(RTC_ADDRESS, 7); // Hét bájt kiolvasása (time/date)
time->tm_sec = bcdToDec(Wire.read() & 0x7f); // Másodpercek (0-59)
time->tm_min = bcdToDec(Wire.read()); // Percek (0 - 59)
time->tm_hour = bcdToDec(Wire.read() & 0x3f); // Órák (24h kijelzéshez)
time->tm_wday = bcdToDec(Wire.read() - 1); // Hét napja (0 - 6)
time->tm_mday = bcdToDec(Wire.read()); // hónap napja (1 - 31)
time->tm_mon = bcdToDec(Wire.read() - 1); // hónap sorszáma (0 - 11)
time->tm_year = bcdToDec(Wire.read()) + 100; // 1900-tól eltelt évek
} -
lanszelot
addikt
----bocsi, nem engedi programkód blokba ------
Ellenőrzésnél dobja, meg se próbáltam feltölteni, felesleges.Arduino: 1.8.18 (Windows 10), Board: "ATmega328PB"
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c: In function 'u8g_spi_out':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:184:3: error: 'SPDR' undeclared (first use in this function); did you mean 'SPDR0'?
SPDR = data;
^~~~
SPDR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:184:3: note: each undeclared identifier is reported only once for each function it appears in
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:186:12: error: 'SPSR' undeclared (first use in this function); did you mean 'SPDR'?
while (!(SPSR & (1<<SPIF)))
^~~~
SPDR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c: In function 'u8g_com_arduino_hw_spi_fn':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:220:7: error: 'SPCR' undeclared (first use in this function); did you mean 'SPCR0'?
SPCR = 0;
^~~~
SPCR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_hw_spi.c:227:2: error: 'SPSR' undeclared (first use in this function); did you mean 'SPCR'?
SPSR = (1 << SPI2X); /* double speed, issue 89 */
^~~~
SPCR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c: In function 'u8g_arduino_st7920_hw_spi_shift_out':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:102:3: error: 'SPDR' undeclared (first use in this function); did you mean 'SPDR0'?
SPDR = val;
^~~~
SPDR0
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:102:3: note: each undeclared identifier is reported only once for each function it appears in
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:104:12: error: 'SPSR' undeclared (first use in this function); did you mean 'SPDR'?
while (!(SPSR & (1<<SPIF)))
^~~~
SPDR
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c: In function 'u8g_com_arduino_st7920_hw_spi_fn':
C:\Users\robag\Documents\Arduino\libraries\U8glib\src\clib\u8g_com_arduino_st7920_hw_spi.c:204:7: error: 'SPCR' undeclared (first use in this function); did you mean 'SPCR0'?
SPCR = 0;
^~~~
SPCR0
exit status 1
Error compiling for board ATmega328PB.This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences. -
-
vargalex
félisten
válasz
lanszelot #19542 üzenetére
Én nem szoktam lib-eket csak úgy letölteni és bemásolni sehová. Egyszerűen Arduino IDE-ben az Eszközök->Könyvtárak kezelése alatt megkeresem a kérdéses lib-et (jelen esetben az U8glib-et, majd megnyomom a hozzá tartozó Telepítés gombot. Ezután a sketch-et bemásoltam az IDE-be, lementettem és azonnal hiba nélkül fordult.
Te hogyan csinálod ezt az egészet? -
lanszelot
addikt
Hello,
Ez a project se működik.
Rengeteg hibát dob... -
olli
tag
WiFi LoRa 32 +DS3231 rtc .
Létezik arduino alatt feltölthető program amivel nemcsak a feltöltéskori dátum és idő marad meg, másnap reset után? -
-
lanszelot
addikt
Hello,
Végre működik a nano
Már programozgattam is kicsit
Így vissza térnék az eredeti kérdésemhez.
Itt van az ino file, amit le lehet tölteni.
De kellenek hozzá a Library file-ok.
Leszedtem /ráütésre/, majd töröltem az include -okat, és Skatch -> Include Library hozzá adtam , hogy tuti legyen az elérés.
Persze hibát dob. Gondolom nem azt szedtem le amit kellett volna."C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_SH1106\Adafruit_SH1106.cpp: In member function 'void Adafruit_SH1106::display()':
C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_SH1106\Adafruit_SH1106.cpp:551:28: error: 'TWBR' was not declared in this scope
uint8_t twbrbackup = TWBR;
^~~~
C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_SH1106\Adafruit_SH1106.cpp:551:28: note: suggested alternative: 'TWBR0'
uint8_t twbrbackup = TWBR;
^~~~
TWBR0
Multiple libraries were found for "Wire.h"
Used: C:\Users\robag\AppData\Local\Arduino15\packages\ATmega328PB-incl-Bootloader\hardware\avr\0.1.0\libraries\Wire
Not used: C:\Users\robag\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
Multiple libraries were found for "SPI.h"
Used: C:\Users\robag\AppData\Local\Arduino15\packages\ATmega328PB-incl-Bootloader\hardware\avr\0.1.0\libraries\SPI
Not used: C:\Users\robag\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI
Multiple libraries were found for "Adafruit_Sensor.h"
Used: C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_Sensor-1.1.7
Not used: C:\Users\robag\OneDrive\Dokumentumok\Arduino\libraries\Adafruit_Unified_Sensor
exit status 1
Error compiling for board ATmega328PB."Honnan tudom azokat a file-okat leszedni, hogy működjön?
Amivel épp baja van azt innen szedtem /első post alatt ott a zip file, kicsomagolva másoltam a Library-ba/
-
Wolfram
aktív tag
Ali-n véletlenül PSRAM nélküli ESP-t rendeltem, valaki tudja mire jó, vagy mire kell ez a ram? Dobhatom ki a kukába, vagy ez csak speciális alkalmazásokhoz kell?
-
-
-
-
válasz
lanszelot #19517 üzenetére
Hát... Akkor már csak két lehetőség van.
1 eleve rossz a lap, vagy hamis chip van rajta
2 véletlenül elkötötted a tápvezetékeket próbálkozás közben és kijött a füst, ami működteti a chipet
Esetleg keresni kellene egy régebbi verziójú avrdudess-t, hátha. Egy régebbi például ismeri a pickit2 programozót, de az újabbakból már kivették a támogatást, hátha az Arduino ISP is csak egy régebbi verzióban van. Én egyszer kaptam attiny85 helyett attiny12-t, de az avrdudess azt is felismerte, asszem pont egy UNO volt a programozó mert nem volt akkor még rendes ISP-m... De hogy semmi ne ismerje fel -
lanszelot
addikt
Hello,
Kaptam egy Arduino Uno-t ahol dolgozom, az egyik tanártól.
Ez a leírás szeritn csináltam. Pont úgy.
Azzal is hibát dob:
Arduino: 1.8.18 (Windows 10), Board: "Arduino Nano, ATmega328P"
Error while burning bootloader.
avrdude: Expected signature for ATmega328P is 1E 95 0F
Double check chip, or use -F to override this check.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.Avrdudess:
You have the latest version :)
>>>: avrdude -c arduinoisp -p m8
WARNING: Unable to detect MCU
avrdude.exe: Error: Could not find USBtiny device (0x2341/0x49)
avrdude.exe: opening programmer "arduinoisp" on port "usb" failed
avrdude.exe done. Thank you.Bár még mindig nem tudom hogy kell használni.
#19517weiss: szerintem félre értetted, blink és hasonló programról írtam, nem bootloader-ről
Amúgy én vagyok a programozó. -
-
lanszelot
addikt
Nincs olyan lehetőség, hogy Arduino as ISP.
Nem ismeri fel se Arduino, se Arduino Programmer ISP, se a másik
se Arduino Programmer ISP -n /2 van belőle/
Nem írtad hogy kell összekötni. #19512 ICSP alapján kötöttem összeLehúztam mindent nano-ról,
Nano-t usb kábellel bedugtam pc-be,
AVRDUDESS 2.14 portable elindítottam,
Programmer - Arduino válsztottam
Detect - Unable to detectvargalex: vásárlás leírásban ott volt, hogy nincs bootloader, csak nem tudtam az mit jelent
gondoltam, úgy is saját kódot akarok rárakni. -
válasz
lanszelot #19514 üzenetére
Töltsd le az avrdudess-t. Felül ki tudod választani a portot és a programozót (Arduino as ISP), jobb felső sorban a Detect gombra nyomva fel kell neki ismerni a CPU-t akkor is, ha nincs rá feltöltve bootloader. Ha felismerte, akkor minden jól van összekötve. Töltsd le ezt a hex file-t, tallózd be a Flash sorban, nyomd meg alatta a Gombot
Ha minden jól megy, kész. -
lanszelot
addikt
-
válasz
lanszelot #19510 üzenetére
Tedd már meg, hogy csinálsz egy fotót az összedugott két lapról, ahogy utoljára próbálkoztál vele.
A mega boardon nem a 10-13 pineken van az SPI, mint az UNO-n meg a Nano-n, hanem az 50-53 pineken, ezeket kell összekötni a Nano 10-13 pinjeivel, vagy az ICSP headerrel, ami ugyanez a 4 láb csak máshol kivezetve. -
lanszelot
addikt
Rossz bootloader írást nézel. Ezért rossz képet nézel.
A te képed nem ICSP pin-en keresztül van.
Írtam hogy a normál a nano-al nem működik.
Error kód alapján megkerestem miért.
Linket is dobtam ahol leírják miért.
ICSP pin-en keresztül kell frissitenem, ezért a kép már az alapján készült.
De igen, a normált is próbáltam, fentebb ott az error kód.
#19487 -es írásom -
-
vargalex
félisten
válasz
lanszelot #19504 üzenetére
Szia!
Esetleg, ha nem lenne bekapcsolva, akkor Arduino IDE-ban kapcsold be a Beállítások alatt a Bővebb kimenet mutatása eközben: feltöltés opciót (Preferences->Show verbose output during: upload).
Egyébként én még nem láttam bootloader nélküli nano-t. Csak olyat, amin még régi bootloader volt, ekkor az Arduino IDE-ben az Eszközök (Tools) menüben az Arduino Nano board kiválasztása után CPU-t is át kell állítani ATmega328P (Old Bootloader) típusra. -
válasz
lanszelot #19501 üzenetére
Na akkor sorban:
1 kiválasztottad a mega boardot
2 feltöltötted rá az Arduino ISP programot
3 kiválasztottad a nano boardot
4 beállítottad programozónak az "Arduino as ISP"-t
5 össze kötötted a megfelelő lábakat:
6 bekötötted a kondenzátort a reset lábraés ennek ellenére sem sikerült?
-
Tomika86
senior tag
Sziasztok!
Távolság számlálást, jelenleg ezt használom, hogy lehetne átalakítani, hogy ne legyenek kerekítések és esetleg ne legyen float számolás. Jelenleg működik így. (ESP32 miatt van interruptban az FPU bekapcsolás és regiszter mentés). A kód devkiten fut és négyszögjellel hajtom meg, soros monitoron figyelem,
float CalibrationValue_nextion = 6900.0;
float GearratioValue_nextion = 5.0;
Ez a kettő érték változik, felső egy kalibráló érték, ezzel lehet pontosítani, alsó az áttétel megadása.#define METER_RESET_BUTTON_PIN GPIO_NUM_39
#define SPEED_INTERRUPT_PIN GPIO_NUM_14
#define TRIP_COUNTER_RESET_METER 2000
#define SPEEDOMETER_RESET_TIME_MS 3000
void IRAM_ATTR Speed_ISR_Handler();
void SpeedAndTripCalculation(gpio_num_t meterresetinput, const uint32_t speedometerZeroTime, const uint16_t TripmeterResetInterval);
float CalibrationValue_nextion = 6900.0;
float GearratioValue_nextion = 5.0;
uint16_t Speedometer;
uint32_t TravelledMeters_tonextion, TripMeter_Km, OdoMeter_Km;
uint8_t TripMeter_100meterPlace;
volatile float Trip_meter, Odo_meter, Meter_calc;
float DistanceOfImpulse_mm;
float DistanceOfImpulse_m;
volatile uint32_t MillisSavingInSpeedinterrupt;
volatile uint32_t TimeInSpeedinterrupt;
volatile uint32_t PreviousMicrosInSpeedinterrupt;
uint32_t cp0_regs[18];
void setup() {
pinMode(SPEED_INTERRUPT_PIN, INPUT);
pinMode(METER_RESET_BUTTON_PIN, INPUT);
Serial.begin(115200);
attachInterrupt(SPEED_INTERRUPT_PIN, Speed_ISR_Handler, FALLING);
delay(500);
}
void loop() {
SpeedAndTripCalculation(METER_RESET_BUTTON_PIN, SPEEDOMETER_RESET_TIME_MS, TRIP_COUNTER_RESET_METER);
Serial.print("Sebesseg: ");
Serial.println(Speedometer);
Serial.print("Meter: ");
Serial.println(TravelledMeters_tonextion);
Serial.print("Trip szamolo: ");
Serial.println(TripMeter_Km);
Serial.print("Trip 100m szamolo: ");
Serial.println(TripMeter_100meterPlace);
Serial.print("\n");
}
void SpeedAndTripCalculation(gpio_num_t meterresetinput, const uint32_t speedometerZeroTime, const uint16_t TripmeterResetInterval) {
DistanceOfImpulse_mm = CalibrationValue_nextion / GearratioValue_nextion;
DistanceOfImpulse_m = DistanceOfImpulse_mm / 1000.0;
// Sebesség
if ((millis() - MillisSavingInSpeedinterrupt) < speedometerZeroTime) {
Speedometer = 3600 * DistanceOfImpulse_mm / (TimeInSpeedinterrupt);
}
else {
Speedometer = 0;
}
Speedometer = constrain(Speedometer, 0, 300);
// Megtett méter számláló
if (Meter_calc > 99999 || (digitalRead(meterresetinput))) {
Meter_calc = 0;
}
TravelledMeters_tonextion = round (Meter_calc);
// Napi számláló
if (Trip_meter > 999.9999) {
Trip_meter = 0;
TripMeter_Km++;
}
// Nullázás ha 9999km felett van, vagy a beállított felett, vagy nulláztunk gombbal
if ((TripMeter_Km > 9999) || (TripMeter_Km >= TripmeterResetInterval)) {
Trip_meter = 0;
TripMeter_Km = 0;
}
TripMeter_100meterPlace = ((uint32_t)Trip_meter / 100) - (((uint32_t)Trip_meter / 1000) * 10);
// Odo km
if (Odo_meter > 999.9999) {
Odo_meter = 0;
OdoMeter_Km++;
}
if (OdoMeter_Km > 9999999) {
Odo_meter = 0;
OdoMeter_Km = 0;
}
}
void IRAM_ATTR Speed_ISR_Handler() {
// get FPU state
uint32_t cp_state = xthal_get_cpenable();
if(cp_state) {
// Save FPU registers
xthal_save_cp0(cp0_regs);
} else {
// enable FPU
xthal_set_cpenable(1);
}
Odo_meter += DistanceOfImpulse_m;
Trip_meter += DistanceOfImpulse_m;
Meter_calc += DistanceOfImpulse_m;
TimeInSpeedinterrupt = (micros() - PreviousMicrosInSpeedinterrupt);
PreviousMicrosInSpeedinterrupt = micros();
MillisSavingInSpeedinterrupt = millis();
if(cp_state) {
// Restore FPU registers
xthal_restore_cp0(cp0_regs);
} else {
// turn it back off
xthal_set_cpenable(0);
}
}Bármi ötletet meghallgatok, ami jobbá teszi.
Köszönöm!
-
lanszelot
addikt
Hello,
Igen, feltöltöttem.
Csupasz board -ra, kábelek és nano nélkül.
És hiba nélkül rá is ment.
Már amennyire érték hozzá. Gondolom hogy rajta van, nem láttam mit kellene látnom. Nagyon gyorsan felment Mega -ra.
De vártam még 1 percet hátha csinál vmit. De nem, és hibát se írt mikor lehúztam.
Szerintem vagy hibás a nano.
Vagy a Mega nem tudja rárakni a bootloader -t.
Már nem veszek több Arduino-t.
Új hozzászólás Aktív témák
Hirdetés
- A Fehér Házban marad a Starlink Trump és Musk rossz kapcsolata ellenére
- Milyen légkondit a lakásba?
- AMD vs. INTEL vs. NVIDIA
- gban: Ingyen kellene, de tegnapra
- Honor Magic V2 - origami
- Sorozatok
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kerékpárosok, bringások ide!
- Milyen belső merevlemezt vegyek?
- LEGO klub
- További aktív témák...
- billentyűzetek - kiárusítás - Logitech, Corsair, ASUS
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
- Felújított számítógépek/merevlemezek Számlával, garanciával! Ingyen Foxpost!
- Realme 8i 64GB / Normál állapotban / 12 hónap jótállással
- Bomba ár! Dell Inspiron 15 3511 - i5-11GEN I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Gari
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest