- Vezeték nélküli fülhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Nvidia GPU-k jövője - amit tudni vélünk
- OLED TV topic
- Fujifilm X
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- ZIDOO médialejátszók
- ASUS blog: Ideális olcsó utazós gép lett az új Vivobook S14
- Azonnali alaplapos kérdések órája
- Kormányok / autós szimulátorok topikja
-
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
-
válasz
razorbenke92 #20293 üzenetére
Az időbeli korlátozás pedig kell, mert az encodernél is felléphet pergés, ha mechanikus. Az 1000 ms helyett olyan 30-50ms közé kellene állítani.
-
lanszelot
addikt
válasz
razorbenke92 #20293 üzenetére
Azért korlátoltam be mert 1 pozíciót mozdítok és rengetegnek érzékeli. Így 1 mozdítás 1 érzékelés.
Be raktam a fő "if" végére, de nem működik úgy sem.
A belső "if" feltétele nem jó.
Nem egyenlő, egyenlő, kissebb, nagyobb: ezek nem jók.
Borzasztó ritkán egyenlő és azért.Ha kiveszem az idő korlátot akkor nagyon sokat ugrik 1 tekerésre.
Ekkor ha kb 20-at tekerek, akkor abból 1szer ellenkező iránynak érzékeli. Mindegy merre tekerem. -
válasz
lanszelot #20292 üzenetére
Ha külön-külön is szeretnéd működtetni a két LED-et, akkor a digispark pin0-ra az egyik LED rövid, a másik LED hosszú lábát kell kötni! Amelyik rövid lába van a pin0-n, annak a hosszú lábát az R1-re kösd (+5V), ez a pin0 alacsony szintjére kapcsol be, a másiknál pedig fordítva, a hosszú lábát a pin0-ra és a rövidet az R2-re (GND), ez magas szintnél fog világítani. Hogy egyik se világítson, a pin0-t INPUT-ra kell állítani.
-
válasz
lanszelot #20292 üzenetére
void teker(){
currentStateCLK = digitalRead(inputCLK);
if(digitalRead(inputDT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
previousStateCLK = currentStateCLK;
}
Ne korlátozd időben az interruptot, mert azzal lépéseket hagyhatsz ki.A currentState és a previousState pedig az interrupton belül legyen kezelve, mert az interrupt bárhol történhet a futás során. Akár a loopban lévő értékadás előtt vagy után is, ami következetlenné teszi a viselkedését.
-
lanszelot
addikt
Oh, azt hittem az attachInterrupt más
pin-ek:
digispark gnd : RotEnc gnd
digispark 5V : RotEnc+
digispark pin2 : RotEnc CLK
digispark pin1 : RotEnc DT
digispark 5V : R1
digispark gnd : R2
pirosLED rövid láb : R1
kékLED rövid láb : R2
pirosLED hosszú láb : digispark pin0
kékLED hosszú láb : digispark pin0már úgy ahogy működik, de egy irányba állítja csak a sebességet:
/*LED input*/
#define led 0
/*rotary encoder input*/
#define inputCLK 2
#define inputDT 1
int currentStateCLK;
int previousStateCLK;
int keses = 1000;
uint32_t lastms= 0;
void teker(){
if (millis() - lastms > 1000)
{
lastms = millis();
if(digitalRead(inputDT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
}
}
void setup() {
/*inicializálja a Rotary Encoder CLK pin-t inputnak , default HIGH !!! */
pinMode(inputCLK, INPUT_PULLUP);
/*rotary encoder pins input*/
pinMode (inputDT, INPUT);
/*LED pin output*/
pinMode (led, OUTPUT);
/*read initial state of inputCLK*/
previousStateCLK = digitalRead(inputCLK);
/* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
attachInterrupt(0, teker, CHANGE);
}
void loop() {
/*read current state of inputCLK*/
currentStateCLK = digitalRead(inputCLK);
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
/*update */
previousStateCLK = currentStateCLK;
} -
-
lanszelot
addikt
Először is nagyon szépen köszönöm a segítséget mindenkinek.
Azért nem.valaszoltam még, mert nekem még sok időbe telik programozni.
Utána kell olvasgatnom, megértem, próbálgatom .
Mind a 2 megoldást szeretném megcsinálni, csak az interupt -ot nem értem, és keresgetek hátha találok valami kódot, és nem nyers leírást. A kódból könnyebben megértem.A millis() -t már csináltam, ezért a nehezebbel kezdtem.
Még sehol se tartok, csak próbálom megérteni.
Mindenképpen jelzem, hogy sikerült e. -
válasz
lanszelot #20287 üzenetére
A kolléga nagyon szépen leírta helyettem a problémát és a megoldást is
A 3 és 4 lábat csak abban az esetben használhatod, ha nem tervezel semmilyen usb jellegű felhasználást (pl keyboard emuláció stb) és azok a lábak csak akkor fognak rendesen működni, ha a cucc nem adatportba van dugva, mivel a számítógép folyamatosan kommunikál azokon. Ezen kívül a 3as porton van egy 1,5k felhúzó ellenállás, amit nem tudsz kikapcsolni, ez általában nem zavar, mert amúgyis szokás felhúzni olvasáskor, de engem már tréfált meg, hogy nem vettem figyelembe:
Azért írtam, hogy használd csak az első 3 lábat (0-2):
- a 0-ra kösd a két LED-et,
- a 2 legyen a CLK, mert arra van külső interrupt,
- a DT meg legyen az 1. -
válasz
lanszelot #20283 üzenetére
Nem tudom milyen enkódered van, de kénytelen leszel vagy interruptot használni, vagy ütemezőt, ahogy Aryes is írta.
Ha az a tipik pozícióba billenős kattogós enkódered van, akkor hiába forgatod, mert annak a clock lába mindig ugyanaz a stabil állapotban.
Mivel a kódod csak két villogás között mintavételez, ezért mindig csak az az állapot számít, ami a kék led kialvása + keses utáni DE a piros felvillanása előtti időben, azaz pár mikroszekundumban áll fenn. Tehát neked akkor kellene a CLK egy pillanatra más legyen. De ezt nagyon nehéz elkapni, leginkább lehetetlen, ezért a kódod folyamat azt látja, hogy a CLK változatlan, így nem tesz semmit a keses értékével.Interrupttal azt tudod csinálni, hogy a uC figyeli az inputot, és amint az változik, végrehajt egy kódot (esetedben a loop
/*read current state of inputCLK*/)
Ennek köszönhetően a kód nem marad le a váltásokról, mert az interrupt szépen kierőszakolja a futást minden váltáskor.
Ütemezéssel pedig maradhat így a kódod, csak a delay-eket törlöd, és helyettesíted if() feltételekkel. Esetedben 4 ütemre van szükség: redOn, redOff, blueOn, blueOff. A kód elején meghatározod, hogy a piros először mondjuk a futás első másodpercében kell felvillanjon (redOn = 1000). Akkor kialudnia redOff = redOn+keses; időben kell. A blueOn ideje redOff+keses. blueOff = blueOn+keses. Ezután csak kitalálod if használatával, hogy a futásidő millis() éppen melyik ütemen belül van, és annak az ütemnek a feladatát hajtja végre. Mikor az utolsó ütemből is kilépsz, újra kell számolni az ütemek új időpontját. Így a loop nagyon gyorsan ismétlődik, és van esély, hogy nem marad le a futásod az enkóder mozgásáról. Igen, arra is van esély, hogy lemarad, főleg attól függően, hogy mennyire bonyolult marad egy-egy ütem.
-
válasz
lanszelot #20282 üzenetére
Ugye nem felejtetted el, hogy a 3-as pin egyben az USB egyik data vonala is? USB portba dugva nem fog működni, powerbank-ba dugva talán.
Szerk.: csak most néztem végig a programot, ez ebben a formában semmiképp nem fog működni, mert több másodperc delay van minden egyes beolvasás közt, miközben egy rotary encoder forgatása másodpercenként több tucat impulzust is generál. Vagy interrupt kell a beolvasáshoz, vagy minden delay-t likvidálni kell.
Egy tipp: ha lábat szeretnél spórolni, egy lábra két LED-et is rá tudsz kötni, egymáshoz képest fordítva (pin-GND és pin-+5V közé), így az egyik magas, a másik alacsony állapotnál világít, kikapcsolni pedig a port input-ra állításával lehetséges.
-
lanszelot
addikt
Hello,
Valamit megint nem jól csinálok, de nem tudom mi az
digispark , rotary encoder, piros LED, kékLED, 220R 2db
digispark gnd : RotEnc gnd
digispark 5V : RotEnc+
digispark pin2 : RotEnc CLK
digispark pin3 : RotEnc DT
digispark gnd : R1
digispark gnd : R2
pirosLED rövid láb : R1
kékLED rövid láb : R2
pirosLED hosszú láb : digispark pin0
kékLED hosszú láb : digispark pin1kód:
/*LED input*/
#define redLed 0
#define blueLed 1
/*rotary encoder input*/
#define inputCLK 2
#define inputDT 3
int currentStateCLK;
int previousStateCLK;
int keses = 1000;
void setup() {
/*rotary encoder pins input*/
pinMode (inputCLK, INPUT);
pinMode (inputDT, INPUT);
/*LED pin output*/
pinMode (redLed, OUTPUT);
pinMode (blueLed, OUTPUT);
/*read initial state of inputCLK*/
previousStateCLK = digitalRead(inputCLK);
}
void loop() {
/*read current state of inputCLK*/
currentStateCLK = digitalRead(inputCLK);
if (currentStateCLK != previousStateCLK) {
if(digitalRead(inputDT)!= currentStateCLK){
keses = keses+200;
}else{
if(keses > 200){
keses = keses-200;
}
}
}
/*red led on off*/
digitalWrite(redLed, HIGH);
delay(keses);
digitalWrite(redLed, LOW);
delay(keses);
/*blue led on off*/
digitalWrite(blueLed, HIGH);
delay(keses);
digitalWrite(blueLed, LOW);
delay(keses);
}Amit szeretnék: amikor forgatom a RotEnc -t akkor gyorsabban, lassabban villogjon a led
Led villog
RotEnc hiába forgatom -
-
-
-
olli
tag
Mit kellene változtatni a kódban a state helyes funkcióhoz?
```cpp
#include <SPI.h>
#include <LoRa.h>
unsigned int state;
//LoRa32u4 ports
#define SS 8
#define RST 4
#define DI0 7
#define BAND 433E6
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT); // fehér led sets the pin as output for relay
digitalWrite(13,HIGH);
//while (!Serial); //if just the the basic function, must connect to a computer
delay(1000);
SPI.begin();
LoRa.setPins(SS,RST,DI0);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
Serial.println("LoRa Initial OK!");
}
/*----( LOOP: RUNS CONSTANTLY )----*/
void loop() {
digitalWrite(13,LOW);
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet :");
// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
if (state == 0) //Melegvíz gázkazánból..
{
Serial.println("GAZ_KAZAN - TIMER ON");
digitalWrite(13,LOW); //Időzítés be..
delay(500);
}
if (state == 1); //Melegvíz boilerből..
{
Serial.println("BOILER");
digitalWrite(13,HIGH); //Időzítő ki..
delay(3000);
}
}
}
//Serial print
// Received packet :1 HELLO 34.25 17.00 7056' with RSSI -79
//GAZ_KAZAN - TIMER ON
//BOILER
``` -
-
ViZion
félisten
válasz
cog777 #20266 üzenetére
thingspeak esetleg, meg van más is, ami mqtt-ből adatokat tud megjeleníteni. Mail küldés is van, android app van. Értesítést, ilyesmit sohasem engedélyezem, de gondolom bekapcsolható, ezeket nem tudom sajnos.
-
cog777
senior tag
Nagyszeru, megnezem, koszi.
Tovabba ezt talaltam: https://blynk.io/ ingyenes 2 eszkozig, 7 dollar/ho 10 eszkoz.
Tovabba van mobil app-ja is, gondolom ertesitesekkel. -
-
cog777
senior tag
Keresgeltem, de nem talaltam topikot a kerdesemre, remelem maradhat. Szoval, elhataroztam hogy ujraszervezem a hazi homeros projektemet, jelen pillanatban van egy ESP32 amely szerverkent funkcional megjeleniti egy LCD-n a kulonbozo ESP8266-ok altal kuldott adatokat, homerseklet, paratartalom.
Ezt a felallast szeretnem kivaltani egy okosabb rendszerrel. Elsosorban kellene riasztas vagy emal-ra, vagy telefonra ha a benti homerseklet eler egy kuszoberteket.
Amit most kigondoltam hogy az RPi lesz a szerver, es pythonnal kuldhetek email. Viszont vannak okosabb IoT rendszerek de ezeket nem ismerem. Van valami otletetek hogyan tudnam megoldani?
Talaltam IoT dashboard-okat de azok kb 10 dollartol kezdodnek havonta, nemelyiknek mobilos app-ja is van.
IFTTT-t nem ismerem, lehet hogy ez segit? pl email notification?
https://anthscomputercave.com/tutorials/ifttt/using_ifttt_web_request_email.htmlTovabba egy IoT dashboardot is keresek, aminek van mobilos app-ja, regebben volt ingyenes par eszkozig, de most nem talalok. Korabban csinaltam magam, bereltem egy szervert es domain nevet, grafana-t futtattam, de erre mar nincs idom, valami kulcsrakeszebb kellene.
Talan ti is hasznaltok ilyen IoT riaszto/dashboard szeruseget. Elore is koszi a tanacsokat.
-
-
Tankblock
aktív tag
válasz
Wolfram #20253 üzenetére
Fogsz egy réz vezetéket, és hozzáforrasztod a tüskék közé, majd pákával vagy/ és Hőlégfúvóval beletolsz annyi hőt h megolvadjon mind majd a gravitáció / csipesz segítségével kiszeded.
Másik megoldás h oldalcsípővel levágod, majd ónszippantóval+páka segítségével egyesével kiszedegeted a lábakat....
-
-
válasz
cog777 #20250 üzenetére
Ahonnan mindent is: a sarki hobbielektronika boltból.
Nagy lapokban adják, méretre kell vágni. Van több féle, van, ahol minden forrasztási hely külön van, meg olyan is, ahol hosszú vezetősávok vannak, amit meg kell szakítani, meg olyan is, ahol hármasával vannak összekötve. Mindegyikből tartok, mikor melyik a praktikusabb, azt használom. -
cog777
senior tag
Vannak itt ott a lakasban es a kertben ESP8266 moduljaim, 4xAA aksival, dobozozokban. Ezek merik a homersekletet es kuldik egy ESP32-nek, amelyik megjeleniti az ertekeket.
A kertiek fel orakra elalszanak, 70uA-t fogyasztanak igy, kb 4-6 honapot siman mennek aksiva. Probapanelokra raktam az procikat es az alkatreszeket.
Par eve remekul mukodnek, de mosnanatba vettem eszre hogy nemelyik nem kapcsol be, pedig frissen toltott aksikat raktam be. Szerintem eselyes hogy a probapanelok korrodalodtak. A benti modul rendben mukodik.
A kinti homerseklet szenzorokat akarom valami megbizhato megoldasra cserelni.
Tud valaki kesz homerseklet modulokat (zart, kintit, elemmel v aksival mukodo), amelyek valamilyen ismert protokollon kuldik az adatokat es azokat tudnam feldolgozni?A szervert szivesen epitem en tovabbra is, nem kifejezetten konyhakesz rendszerben gondolkodom.
-
olli
tag
avrdude.exe: reading input file "0x00"
avrdude.exe: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.02s
avrdude.exe: 1 bytes of lfuse written
avrdude.exe: verifying lfuse memory against 0x00:
Reading | ################################################## | 100% 0.02s
Na ezt a részt nem értem.
Bepipáltam az írást, csak 0x00 beállítással fut le.
Nem írható felül, milyen filet kellene írni? -
olli
tag
válasz
ekkold #20236 üzenetére
nano:
Sketch uses 2652 bytes (8%) of program storage space. Maximum is 30720 bytes.
Global variables use 462 bytes (22%) of dynamic memory, leaving 1586 bytes for local variables. Maximum is 2048 bytes.
uno:
Sketch uses 2652 bytes (8%) of program storage space. Maximum is 32256 bytes.
Global variables use 462 bytes (22%) of dynamic memory, leaving 1586 bytes for local variables. Maximum is 2048 bytes.
Több hely a program számára. -
válasz
lanszelot #20229 üzenetére
Az a nagyon nagy baj, hogy amíg ezt ide leírtad, addig beírhattad volna a Google-be, ahol a legelső találat elmagyarázza, még a link is ott van, ahonnan le lehet tölteni.
A hex fájlon mi bonyolult van? Írtam én olyat, hogy meg kell érteni?
Be kell tallózni, ahová a kép mutatja, megnyomni a Go-t és kész.
-
lanszelot
addikt
-
-
lanszelot
addikt
Most jöttem rá, hogy fogalmam sincs hogyan kell digispark bootloader-t felrakni.
Amit vettem azon alapból volt.
Így nem tudom hogy csináljam az Attiny85 bootloader-t.Emiatt fiók méllyére raknám a programmer board-ot, és maradnék az arduino feltöltéssel.
De az miért nem működik?Ha tudok bootloader-t hiba nélkúl rárakni, miért nem tudok programot rátölteni?
Miért dob hibát? -
-
válasz
lanszelot #20221 üzenetére
Ugye arra az Attiny85-re, amit a másik topikban tárgyalt programozóba dugsz, amihez utána nem tudod telepíteni a drivert, nem az Attiny85 board-ot kiválasztva próbálsz bootloader-t feltölteni, hanem a Digistump-ot választod ki hozzá és annak a bootloader-ét töltöd rá?
-
lanszelot
addikt
A link véletlen lemaradt.
De ha ugyanezzel bootloadert rakok fel, akkor viszont semmi gond.
Minden uyanaz, csak a kondenzátort rakom a rst gnd -re.itt a bootloader lefutása:
"
C:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -v -v -v -pattiny85 -cstk500v1 -PCOM3 -b19200avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg WunschSystem wide configuration file is "C:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
AVR Part : ATtiny85
Chip Erase delay : 400000 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 12 4 0 no 512 4 0 4000 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
flash 65 6 32 0 yes 8192 64 128 30000 30000 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [02]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [81] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [98] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
Hardware Version: 2
Firmware Version: 1.18
Topcard : Unknown
avrdude: Send: A [41] . [84] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [85] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [86] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [87] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [89] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
Vtarget : 0.0 V
Varef : 0.0 V
Oscillator : Off
SCK period : 0.1 usavrdude: Send: A [41] . [81] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: B [42] . [14] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] @ [40] . [02] . [00] . [00] . [00] [20] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: PAGEL and BS2 signals not defined in the configuration file for part ATtiny85, using dummy values
avrdude: Send: E [45] . [05] . [04] . [d7] . [a0] . [01] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: P [50] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: AVR device initialized and ready to accept instructionsReading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [1e]
avrdude: Recv: . [10]
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [93]
avrdude: Recv: . [10]
################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [0b]
avrdude: Recv: . [10]
################################## | 100% 0.02savrdude: Device signature = 0x1e930b (probably t85)
avrdude: Send: Q [51] [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]avrdude done. Thank you.
" -
lanszelot
addikt
Hello,
Ez a videó alapján a bkink -et próbalom Attiny85 -re feltölteni, de hiba kódot dob.
Ez a hibakód:
"Arduino: 1.8.18 (Windows 10), Board: "ATtiny25/45/85, ATtiny85, Internal 1 MHz"Sketch uses 676 bytes (8%) of program storage space. Maximum is 8192 bytes.
Global variables use 9 bytes (1%) of dynamic memory, leaving 503 bytes for local variables. Maximum is 512 bytes.
C:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -pattiny85 -cstk500v1 -PCOM3 -b19200 -Uflash:w
:\Users\robag\AppData\Local\Temp\arduino_build_247506/Blink.ino.hex:i
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg WunschSystem wide configuration file is "C:\Users\robag\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
AVR Part : ATtiny85
Chip Erase delay : 400000 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 12 4 0 no 512 4 0 4000 4500 0xff 0xff
flash 65 6 32 0 yes 8192 64 128 30000 30000 0xff 0xff
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 3
Firmware Version: 6.2
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 usavrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000 (retrying)
An error occurred while uploading the sketch
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.avrdude done. Thank you.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
"Miért dob hiba kódot?
Sikerült volna kukáznom az Attiny85-t? Azt hogy tudom ellenőrizni, hogy működik e még?
-
Wolfram
aktív tag
Tud valaki műanyag fehér dobozt, amibe egy 400 pontos próbapanel méretű konfiguráció belefér?
-
Wolfram
aktív tag
Foglalkozott már valaki hang rögzítéssel ESP-n?
Ha lementem a nyers analóg mikrofon értékeket egy file-ba, azt fel tudom valamivel dolgozni PC-n? (átkonvertálni wav vagy mp3 formátumba) -
Tomika86
senior tag
Ezt megnézem mit tehetek, mert az esp32-ben nincs pontos időm tárolva. akkor maximum azt teszem az x tengelyre, hogy mióta van megnyitva a kapcsolat. Igazából lényegtelen, hogy mikor történt bármi is, csak legyen viszonyítási alap.
Viszont most munkahelyemen kipróbáltam és simán viszi 50ms-et, hiba nélkül. Ezek szerint kliens oldalon se mindegy mi van.
-
-
Tomika86
senior tag
válasz
vargalex #20205 üzenetére
Szia!
Te nagyon kened vágod a témát, tudsz esetleg segíteni abban, hogy websocket segítségével, miért nem tudok 100ms alatti intervallummal adatot küldeni?
jelenleg van egy programom amit megcsináltam offline elérhetővé, illetve összerakosgattam a javascript kódot is.
Jelenleg 110ms-al próbálkozok (ezzel jó is), a szinusz és koszinusz csak teszt.
Jobb lenne ha 100ms alá tudnék menni, viszont ilyenkor megbolondul az ESP32, heap error, lefagy az adatátvitel, újraindulgat.Az a helyzet, hogy szeretnék kb 5 grafikont, és jelenleg még csak 2 van (de így se elég gyors).
[link]
src mappában a fájlokKöszönöm, ha bármiben tudsz segíteni, ötletet mondani. Illetve tuti találsz benne hülyeséget is, amit én nem tudok még.
-
Wolfram
aktív tag
ESP32-S2-n Ard IDE feltöltés után nem indul a progi (nem ír hibát az output-ban), csak ha megnyomom kézzel a reset gombot, valami rémlik korábbról de nem jut eszembe mi volt a megoldás?
-
Wolfram
aktív tag
válasz
Janos250 #20200 üzenetére
Valami ilyesmire gondoltam (kézi számolással demonstrálva):
long sinceSec =esp_timer_get_time()/1000000;
long min = sinceSec / 60;
long sec = sinceSec % 60;
Serial.printf(" ESP32 running since: " + min + " minutes " + sec + " seconds");de nem ismerem a C string formázást, vagy hogy a dátum objektumnak van-e valamilyen parse funkciója ami kiszámol egy komplett Dd HH:MM:SS dátumot.
Új hozzászólás Aktív témák
Hirdetés
- Vezeték nélküli fülhallgatók
- Okos Otthon / Smart Home
- Kazy Computers - Fehérvár - Megbízható?
- eBay-es kütyük kis pénzért
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Filmvilág
- Nvidia GPU-k jövője - amit tudni vélünk
- Samsung Galaxy A54 - türelemjáték
- Horgász topik
- Hardcore café
- További aktív témák...
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 512SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- Csere-Beszámítás! Asus Tuf Gamer laptop! R5 3550H / GTX 1650 / 8GB DDR4 / 500GB SSD
- AKCIÓ! Apple Macbook Pro 16" 2019 i7 9750H 32GB 500GB Radeon Pro 5300M hibátlan működéssel
- Samsung Galaxy A04 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest