- Magga: PLEX: multimédia az egész lakásban
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- eBay segítség kezdőknek
- moha bácsi: VIII. Viharsarki Hobbi Elektronika Találkozó Békéscsaba 2025.06.14. szombat
- Elektromos rásegítésű kerékpárok
- Parci: Milyen mosógépet vegyek?
- gban: Ingyen kellene, de tegnapra
-
LOGOUT
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
-
lanszelot
addikt
-
lanszelot
addikt
Hello,
Nekem ugyanez az ESP32 -es webkamera van, de az enyém 1 perc alatt 1 kép kockát ad.[link]
Ha a legkissebbre veszem a kép felbontást, akkor 10-15 mp 1 kép kocka, de a kepet alig látni olyan pici. Azt hittem ez ilyen gyenge, és dobtam a sarokba...vele együtt a projectet is.
A videón viszont, nagy felbontásban jó frissítéssel ad képet.
Ahogy megvettem úgy van, semmit se változtattam, csak bekapcsoltam, csatlakoztam.
Valamit be kell állítanom> Vagy miért rossz nekem?Wifi 1m-re van, és nincs gond a wifi-vel. Biztonsági kamera is azon van és FHD képet ad. Telefonono néztem a wifi sebességet nincs gond vele. Tehát nem azzal van baj.
-
lanszelot
addikt
Hello,
Hogy csinált Arduino-ból kontrollert?
Milyen modul kell hozzá?
[link] -
lanszelot
addikt
Hello,
Ide [link] minek a 'state' változó?
Csak 'val' -al ugyanezt meg lehet oldani. -
lanszelot
addikt
Hello,
Ezen [link] hogy állítható a 5V/8V/9V/12V kimenet?Nem állhatok meg míg üres lesz az út. Hátam mögé se nézhetek folyamatosan. Hátam mögül másik sávból nasasasszony úgy baxott majdnem telibe, hogy még ő volt felháborodva, hogy mit keresek az úton.
1 autónyi helyen /2 oldalt parkolnak/, ha telibe xarja a szembejövő autós, hogy te szabályosan a savodba vagy és ő megy az út közepén nem mindig sikerül megállni. Autós szerint simán elférek.
Es a rendőr bacsi még engem baxott le, hogy miért álltam meg. Tehát ott rendőr szerint centiznem kell. Tudnék mesélni... -
lanszelot
addikt
válasz
Undoroid #21112 üzenetére
Hello
A duda nem arra kell hogy elküldjem a ....
Hanem arra, ha elbambul és oldalról jön rám.
Ekkor hiába brillogatom a kis bringa csengőt.
Belém fog jönni.
De ha volna mivel jeleznem hogy halihó itt vagyok akkor talán elkerülhető a kórház. Ezért kell hogy hallja.
Ha meg nem ütött el, akkor felőlem azt nyom amit akar utána.
Volt pl hogy kinyitották az ajtót előttem, és a duda mentett meg.
Az új bringámon sajna nincs, csak csengő -
lanszelot
addikt
Hello,
[link] újdonságok
Milyen hangosan szólhat az a piezzo driver buzzere?
Kerékpár dudára gondolnám.
Amit lehet kapni, mind halk /autó forgalomban/
Kb 120Hz kellene. Hogy az autós is meghallja -
lanszelot
addikt
válasz
razorbenke92 #21083 üzenetére
Hello,
Megérkezett az ESP32-CAM-MB .
Meglepett, de nagyon.
Én egy Arduino Uno méretre számítottam.
Ez akkora mint a nagyujjam
[kép] [kép] [kép] [kép]
És már fel van töltve rá a program, csak használni kell.
Usb-t bedugom, telefonon wifi-k között ott van, csatlakozok, böngészőben 192.168.4.1 és kész, beállítások és kamera kép.
Inkább adták volna linken a progit, mert így ha feltöltök rá vmit oda a progi
Szeretem az alap dolgokat megtartani. Hát ennél ez buktaDe nagyon tetszik.
Van Rajta memória foglalat, flash light, meg minden.
Nagyon hejde kis eszköz -
lanszelot
addikt
válasz
cog777 #21081 üzenetére
Először is köszönöm szépen a választ.
Nem tudom mi az az ESP32. Kell e hozzá Arduino /nano, uno, meg
a/?
Minek a Bluetooth benne? Azzal mit csinálok?
Vagy a kamerán kívül tud még valamit? Ahhoz van a Bluetooth?
Erre írtam hogy nem tudom mi az.
Csak bele ugrott valahogy a kosaramba, és mit lehet ilyenkor tenni -
lanszelot
addikt
Hello,
[link]
Vettem egy ilyet, de nem tudom mi ez.
Mármint azt értem hogy valahogy wifire tudok vele csatlakozni, és ugyanazon a wifin keresztül böngészővel az ip cimet megnyitva látom a kamerát.
De kell hozzá Arduino?
Interneten át is el tudom érni? -
lanszelot
addikt
Először is köszönöm szépen a válaszokat mindenkinek.
Én is valami lassú autóra gondoltam, pl tank, csak nekem nem kell a teteje, ezért hívtam autónak.
Amit néztem abból pár vezeték megy a kontrollerbe amin 4 gomb van, és semmi több. Előre, hátra, jobb, bal.
Azoknak a vezetékeknek jelet adok és kész.
Így gondoltam a vezérlést. Nem megy előre és fordul. Vagy vagy.
De az 4 kerekű volt, nem tank. Pár forintos kínai gagyi, de nekem pont az kell.Nem web kamerát akartam, és a vga minőség is tökéletes.
Annyi érdekel hogy működjön. Később gondolkodhatok nagyobba, hogy ez vagy az jobb legyen. Most a legalapabb dolgokat akarom, hogy ne ott csúszzon el, hogy túl van bonyolítva. -
lanszelot
addikt
Hello,
Arduino-val egy nagy project-be vágnám a fejszém.A terv az, hogy interneten át kis autót kamerával a lakásomban irányítok wifi-vel csatlakozik az otthoni netemhez.
Elgondolás:
- első körben interneten át ki be kapcsolok egy led-et.
- veszek egy kis vezetékes kisautót, azt irányítom a led helyett.
/Semmi pontosság, csak menjen/
- veszek kamerát, streamelem neten át.
- rá a kisautóra, és minden együtt.
- talán egyszer megépítek egy kisautót is hozzá.Hosszú távú terv...
Miért vezetékes kisautó: mert a kamera a kisautón lesz, az arduino-nak is rajta kell lennie, tehát a kontrollert rá kellene szerelnem a kisautóra ha vezeték nélküli, igy meg magára a kisautóra kötöm a vezérlést, nem a távirányítóra.
Remélem érthető amit próbáltam leírni.Javaslatok, mire figyeljek, jó e az elgondolás?
-
lanszelot
addikt
válasz
Janos250 #20948 üzenetére
Először is köszönöm szépen a válaszokat mindenkinek.
Fogalmam sincs milyen típusú.
Mint írtam egy pumpában van.
Találtam egy portable bringa pumpát amit azért dobtak ki mert vízben hagyták. Az usb és kornyéke olyan rozsdás volt hogy kitöltötte az usb folalatot.
Szét szedtem, és 6-7V rol megy. A motor és az akksi nem sérült.
Mivel nincs töltő az akksihoz, így az nem érdekel.
Szórakozásból gondoltam arduinoval rakok rá egy nyomás jelzőt.
És utána kidobom. /Mármint a pumpát/
Tanulásnak jó project.
De semmit se találok a nyomás érzékelőről.
Így nem tudom hogyan kellene valami adatot kiszedni belőle.
Túl kezdő vagyok még -
lanszelot
addikt
Hello,
Pumpában ez méri a nyomást.
[kép]
Nem találok hozzá arduino library file-t.
Tudnátok segíteni ebben? -
lanszelot
addikt
Hello,
Bal oldalin az SDA és SCL lábakat keresem.
Gondolom a CLK az SCL. /Nem vagyok biztos benne/
Ha nem az akkor melyik?
De melyik az SCL?
[kép] -
lanszelot
addikt
válasz
ViZion #20779 üzenetére
Hello,
Cicákat tanítok. /ül, fekszik, fordul, gurul, 2 lábon áll...stb/
Minden cica, kutya tanítható. Ki könnyebben ki nehezebben.
2 hónapos még ilyenre mint ne menj fel a pultra, ül, fekszik stb.. még nem.
Nem azért kell mert felmegy, hanem mert elektromos főzőlap van, amin nem érezni hogy forró. Tehát nekem kell, hogy tudjam hogy ha felmegy mikor nem kellene.
No és plusz egy project arduinoval -
lanszelot
addikt
Nem kell mozognia az hogy világít a falon sok is.
Pláne este a sötétbenVan mind a 4. A lézeren kívül a többit használtam.
Tapasztalt problémáim írtam le.
Nem erre használtam, de ezek voltak a gondok.
Pir -el a fény viszonyok, és a néha nem működik.
Cica csobogót üzemeltettem vele. Ha oda ült a cica elé akkor elindult a víz.
Ultrahang-al tolató radart csináltam.
RCWL...- mozgás érzékelő falon át.
Lézer van, de még nem használtam.
Kb 70 darab különböző modulom van. Még a felére se volt időm használni.
Jövőhét után neki esek a pultos dolognak, mert szabin leszek.
Megírom majd, hogy ott melyik hogy működött. -
lanszelot
addikt
Először is köszönöm szépen a válaszokat mindenkinek.
Alatta sajnos nincs hely.
Rajta se sok
[kép]Nem zavarja se az ultrahang, se a ragasztó, se semmi.
Kis köcsi mind/de ezért szeretjük/
Wolfram:
Ha nem a feny, akkor fogalmam sincs hogy az árnyéktól az enyém hogy kapcsolódott be.
Illetve többször fordult elő hogy engem nem érzékelt, pedig nem vagyok kicsi, én távolságnak tudtam be.
Lehet nem ezek miatt de akkor nem tudom miért.biker: RCWL-0516 nem infrás. Nekem vastag falon is át látott de lecsökkent a táv. Közvetlen falhoz téve a cicát is észleli ha elmegy a fal másik oldalán.
-
lanszelot
addikt
Azért nem jó, mert a falon is át lát.
Teszteltem.
Kb fél métertől érzékel kb 5 méterig.
Falon át 3-4 méter. Fal függő.
Horizontális kb 180 fokban lát, vertikálisan kb 90 fok
És érzékeli a cicát.
Simán át lát a pulton lefelé. Azaz ha elmegy lent a pult előtt akkor érzékeli.HC-SR501 PIR: fény függő, és gyenge. Plusz rövid hatótávolság.
Ami nekem van az max 1 méter.
HC-SR04 az jobb, de abból 2 kell. -
lanszelot
addikt
Hello,
L alakú 1800x1600 -as konyhapultra, digisparkkal szeretnék egy érzékelőt, ha a cica felugrik akkor csipogjon.
Nem elzavarni, csak nekem hogy tudjam.
Milyen érzékelővel tudom megoldani?Vízszintesen kell értékelnie, mert ha a földön mászkál akkor ne csipogjon.
RCWL-0516 ezért nem jó, pedig ahhoz csak egy csipogó kellene, semmi más. -
lanszelot
addikt
válasz
Janos250 #20425 üzenetére
Azért vettem ezt a MuktiShield-et mert mindig áll 3-4 project-em arra várva hátha sikerül befejezni.
Most is ott vár a polcon 4 project - MultiShield nincs benne.
Mivel azokkal nem tudok hetek óta haladni, ilyenkor bele kezdek valami másba.
No, de nincs vezetékem a breadboard -hoz, mert mind ott van a többiben. Az a pár szál vezeték arany áron van.
40 darab 10cm vezeték áráért vettem ezt a shield-et.
Ezen meg van minden lim-lom.
Ez volt az első project -em vele.
Megtanultam, hogy a "*.h" -ját nem fogom használni.
Ott van benne melyik ingyom-bingyom melyik pin-re van csatlakoztatva, és azt fogom használni.
Senkit sem ismerek aki egy izzó cserénél többet tudna.
Így nincs senki akit kérdezhetnék.
Így ha elakadok, akkor el vagyok akadva.
Még nagyon kezdő vagyok, így mindig elakadok
Ezért nagyon szépen köszönöm, hogy segítetek -
lanszelot
addikt
válasz
Tomika86 #20422 üzenetére
Először is köszönöm a segítséget mindenkinek.
Végre megértettem, amit próbáltatok elmagyarázni.
Rosszul értelmeztem amit írtatok.
Azt hittem a loop megvárja a szünetet, mert azt hittem az úgy működik mint a delay.
De nem, az úgy működik mint a beep.A loop végén írtam miert nem jó a hosszabb delay.
Akkor az egész eltorzul.Viszont az elsőbe ami nem jól működik oda beszúrtam egy delay-t.
És így, bár sufni tuning módra, de megoldódottitt a kész kód:
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
int trigPin = 40; // Trigger
int echoPin = 41; // Echo
long duration, cm, inches;
void setup() {
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Timer1.initialize();
MFS.initialize(&Timer1);
}
void loop() {
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// Convert the time into a distance
cm = (duration/2) / 29.1; // Divide by 29.1 or multiply by 0.0343
inches = (duration/2) / 74; // Divide by 74 or multiply by 0.0135
MFS.write((int)cm);
/*Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();*/
if (cm <= 30 && cm > 20) {
MFS.beep(25, // beep for 250 milliseconds
100, // silent for 1000 milliseconds
1, // repeat above cycle 1 times
1, // loop 1 times
1 // wait 10 milliseconds between loop
);
delay(320);
Serial.println("egyes");
}else if (cm <= 20 && cm > 10) {
MFS.beep(25, // beep for 250 milliseconds
10, // silent for 100 milliseconds
1, // repeat above cycle 1 times
1, // loop 1 times
1 // wait 10 milliseconds between loop
);
Serial.println("kettes");
}else if (cm <= 10) {
MFS.beep(55, // beep for 350 milliseconds
1, // silent for 10 milliseconds
1, // repeat above cycle 1 times
1, // loop 1 times
1 // wait 10 milliseconds between loop
);
Serial.println("harmas");
}
delay(320);
} -
lanszelot
addikt
válasz
vargalex #20417 üzenetére
Rosszul emlékeztem.
De 200 is kevesebb mint 250 így lesz benne szünet.
És van is.De még mindig nem a 2ik és 3ik ággal van gond.
Hanem az elsővel.
Csak az első ág nem működik jól.
A többi jó.
Az első ágban nem fut le a szünet. Állíthatom bármekkorára.
Vagy nem jut el oda a futtatás, vagy felül írja valami.
Felül írja, én arra szavazok. Mert a "nem fut le" annak semmi értelme, ha a másikban gond nélkül lefut.
Tehát mi írja felül az if első ágában az 1500ms szünetet, vagy akár az egész ágat.
Az az ág fut le, az biztos. Másik ág nem fut le egyidőben.
A kiiratás teszt megmutatta.
De mégis felül írja vmi. De mi? -
lanszelot
addikt
válasz
vargalex #20415 üzenetére
Az első ággal van gond.
Amúgy nem annyiban különbözik
Default: 25, 25, 1, 1, 1
Ez ugye a 2ik ág
A 3ik ág: 35,1,1,1,1.
Mivel a silent 1, azaz nincs, így folyamatos beeeeeep -et kapok, hiába van ott a 250 -es delay, mert 350 be bele megy a 250 és nem lesz delay.Míg 150+250+250 ezért lesz a 2ik ágban szünet.
Aza beep, szünet, beep, szünet....stbAz első ág az:
150+1500, mivel ott van repeat, de nincs 1500,
150+250 van, repeat sincs.
Pedig ott van
Az első kódsor ugyanaz, és jól működik. Míg a másodikban varázslatos módon ugyanaz a kód nem működik.
Állíthatom a silent-et 4millióra is nem lesz silent.
De miért nincs silent? Mi írja felül 1-re?
/Ha nulla az érték az végtelent jelent, kipróbáltam. 1 jelenti a nincs-et/ -
lanszelot
addikt
válasz
Tomika86 #20413 üzenetére
A mellette lévő kommentet értékeket nem írkáltam át, mert minek.
A lényege hogy melyik mit csinál . Nem a kommenthez kell igazítani a programot. A kommentet kell a programhoz.
Az értékek úgy jók ahogy beírtam.
"If" - rovid beep, hosszú szünet
"else if" - rövid beep, rövid szünet
"else if" - hosszú beep , nincs szünet.Mit értesz az alatt hogy a másodiknál folyamatosan ismétlődik?
Az első " else if" - re gondolsz?
Az érték nélküli az egy rövid beep . Nincs ismétlés.
Annál a delay adja a szünetet, épp azért nem változtatható.
Mert akkor mind a két "else if" rossz lesz a delay miatt.
Delay növelés nem jó megoldás.Valamiért az "if" -et felül írja valami. De nem tudom mi.
A benne lévő rész jól fut külön, tehát nincs elírva.
Nincs más az "if" -en belül, tehát csak az marad, hogy valami felül írja.
Lehet, hogy valamelyik "*.h" ban van bug és belefutottam. -
lanszelot
addikt
válasz
Tomika86 #20410 üzenetére
A középsőt nem kell paraméterezni.
Az alap beállításokkal fut: a felsőben feliratozva is van 200 ms beep.
Ha haza érek akkor feliratozom és megnézem.De ha jó ág is fut le akkor se jól csipog.
150-es szünet nincs sehol.
Nem találom mi írja felül.Elsőben jó: 15-ös beep, 150-es szünet, 15-ös beep, 150 szubet, 15 beep, 150 szünet. Vége
Így is kellene.Masodikban nincs 150-es szünet.
Kíváncsi vagyok mit fog mutatni a feliratkozás, melyik fut le.
-
lanszelot
addikt
Hello,
Itt tökéletesen működik a buzzer, rövid csip, hosszú szünet, 3szor
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
void setup() {
// put your setup code here, to run once:
Timer1.initialize();
MFS.initialize(&Timer1); // initialize multi-function shield library
// NOTE beep control is performed in the background, i.e. beep() is non blocking.
// short beep for 200 milliseconds
MFS.beep();
delay(1000);
// 4 short beeps, repeated 3 times.
MFS.beep(15, // beep for 50 milliseconds
150, // silent for 50 milliseconds
3, // repeat above cycle 4 times
1, // loop 3 times
50 // wait 500 milliseconds between loop
);
}
void loop() {
// put your main code here, to run repeatedly:
}itt viszont rosszul működik, rövid csip, rövid szünet, 1szer
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
int trigPin = 40; // Trigger
int echoPin = 41; // Echo
long duration, cm, inches;
void setup() {
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Timer1.initialize();
MFS.initialize(&Timer1);
}
void loop() {
// The sensor is triggered by a HIGH pulse of 10 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the signal from the sensor: a HIGH pulse whose
// duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// Convert the time into a distance
cm = (duration/2) / 29.1; // Divide by 29.1 or multiply by 0.0343
inches = (duration/2) / 74; // Divide by 74 or multiply by 0.0135
MFS.write((int)cm);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
if (cm <= 30 && cm > 20) {
MFS.beep(15, // beep for 50 milliseconds
150, // silent for 50 milliseconds
3, // repeat above cycle 4 times
1, // loop 3 times
50 // wait 500 milliseconds between loop
);
}else if (cm <= 20 && cm > 10) {
MFS.beep();
}else if (cm <= 10) {
MFS.beep(35, // beep for 50 milliseconds
1, // silent for 50 milliseconds
1, // repeat above cycle 4 times
1, // loop 3 times
1 // wait 500 milliseconds between loop
);
}
delay(250);
}Miért rossz a másodikban?
olyan mintha az első "else if" futna le 30-20 között is, nem pedig az "if"
de nem értem miért -
lanszelot
addikt
válasz
vargalex #20387 üzenetére
Nagyon szépen köszönöm a segítséget mindenkinek
Olvasgattam, de még nekem az nagyon bonyolult.
Nagyon kezdő vagyok, és ott túl sok minden van, és belekavarodok. Nem tudom mi az amire nekem szükségem van
A library példái egyik se jó nekem.
Talaltam más példát is hozzá, az jó lenne, de krixkraxokat olvas be nekem. Nekik nem, csak nekem. Nem tudom miért, így feladtam.
Csak tanulgatom, így valami könnyebbet nézek
Vettem 37 érzékelő modult és csak kikaptam ezt a 2 érzékelőt.
De van még 35 másik.
Ez az infra se nehéz, ha saját távvezérlőt akarok, pl lámpát kapcsolgatni. /relé is van a 37 ben/
A lemásolás nehéz nekem. -
lanszelot
addikt
Bocsanat elírtam.
Value -t akartam írni.
Value nincs. Mert value-ra random számot dob.
Az összes szám a távirányítón ugyanazt a számot dobja, a power gomb viszont mást. Vannak gombok amik ugyanazt dobják, de van ami mást. És nem úgy mint a videóban. Ott számsort dob.
És mindig mást. -
-
lanszelot
addikt
Hello,
Volna ez az oldalLent a kódban honna tudom azt, hogy
results.value
mi az a results, illetve hogy lekérhető a value.
results az tömb, object....tehát mi az.
Nem a szó lefordítása érdekel, hanem az, hogy honnan tudom hogy
plresults.length
van -e, és azt hogy kérem le.
Mert ahogy írtam úgy a length nem kérhető le.Ezt szeretném megcsinálni, de nem mondja el, hogy mi honna jön /pl bufIndex 4:15 -nél, vagy utána a Buffer/
-
lanszelot
addikt
válasz
Undoroid #20345 üzenetére
Semmi rossz hangnemet nem irtam. A mosolygós arccal jeleztem is, hogy vicceltem. Én se vettem magamra mikor a videós viccek jöttek. Mert ott volt a fej és egyértelmű hogy az viccnek lett szánva. Nem írtam nagybetűvel, se kioktatón. Próbáltam segíteni. Nem értem miért egyből a rosszat feltételezitek. A link tényleg nem működik, telefonról csinál ilyet, csak elfelejtettem vissza ellenőrizni.
-
lanszelot
addikt
válasz
#68216320 #20339 üzenetére
- Igen, nem ma volt és tévedtem a nevében.
- de minden mást jól mondtam.
- amit osztottam link az usb-s, csak nem nézted meg.
itt van ismét:
- magyar itt
- mint írtam mindenképpen kell neki külső adapter, mert 5V -ről nem mozdul meg.
- itt a floppy meghajtó is, mert ha már kötekedni akarunk, akkor a floppy, az nem a meghajtó. de csak tipp, hogy a 3.5-ös kell neked
- ha jobb minőség kell, akkor sony, ha kaszpsz vhol.
- pci express kártya amit néztem, azon van floppy és ide is, ott ide card -nak írták. De azt nem linkeltem, mert usb-t írtál.
- nem értem miért ellenségeskedtek, semmi rosszat nem írtam, segíteni próbáltam, és hogy huszon év után rosszul emlékeztem a nevére, na bumm. -
lanszelot
addikt
válasz
#68216320 #20333 üzenetére
Na, erre kíváncsi vagyok.
Szerinted mi a neve a foglalatnak ahova az alaplapon a floppy kábelt dugod? Floppy dugi?
Ne a 80 pines pata kábelre gondolj, mert ahogy "hagyományos floppy" -bol se egy van, úgy van 34 pines, 40 pines, 80 pines kábel is.
Hagyományos floppy-k a 8 és 5.25 és 3.5. Ez mind hagyományos.
C64 hez 5.25 volt. Pc hez mind a 3 volt. Amigához 5.25 és 3.5. Sorolhatnám. Elég sokat szereltem anno.
Floppy 34 pines csavart kábeles volt. Ahhoz van usb adapter, de mindhez kell külső adapter, különben nem fog működni.
Ha te készítesz átalakítót, akkor is kellesz külső adapter hozzá.
Bár nem értem miért nem jó a kész.
Külső adapter miatt javasoltam a pci express kártyát.
Mert még mindig nem írtál semmi konkrétumot.
Se azt melyik neked a hagyományos floppy.
Se azt mihez .
De én kérek elnézést, hogy segíteni próbáltam -
lanszelot
addikt
válasz
#68216320 #20331 üzenetére
Bár ez nem ebbe a topikba tartozik, de nem írtad le milyen floppy?
Volt igen sok fajta. Meretben is a bakelit lemez mérettől a gyufás dobozig.
Miért nem jó egy pci exp kártya? Vagy nem pc-hez? Mert ezt sem írtad.Ha pc, akkor így keresd: ide controller pci express card
Vagy ha annyira usb akkor ide controller usb
Pl ez
De rengeteg megoldás van, csak tudni kellene neked mire kell, és mihez, és melyikhez -
lanszelot
addikt
válasz
its_grandpa #20324 üzenetére
'digitalPinToInterrupt' was not declared in this scope
ha átírom
attachInterrupt(digitalPinToInterrupt(CLK), teker, CHANGE);
-
lanszelot
addikt
válasz
lanszelot #20328 üzenetére
Már nem tudtam hozzá írni.
itt van a link ahol olvastam
Serial print -ek lényegtelenek, az csak az ellenőrzéshez kellettek.
Kikerültek volna, ha működik Digispark-al -
lanszelot
addikt
Igen, félre értettél.
Sehol se írtam hogy át írom a pinMode -ot.
Csak a pineket írom át.
Hiszen Megán nem ott van ahol Digispark-on.its_grandpa
Mi az az ISR?
Én azt a kódot a fent linkelt példából vettem.
De majd ha haza érek kipróbálom amit írtálItt a 0 az nem a pin-t adja meg, ez egy rövidítés, az első interrupt pin-t jelenti mindegy melyik chippen. Általában az a 2-es pin.
attachInterrupt(0, teker, CHANGE);
-
lanszelot
addikt
Nem értem.
Szerintem félre értettél.
Mind a kettőre ugyanazt töltöm fell.
Csak a pint írom át.
Tehát nincs különbség.Janos250:
Huhh, az nekem még nagyon bonyolult.
Néztem az oldalt is ami alapján van, de valahogy nem áll össze a fejemben. Nagyon sok benne ami után nézek, és bele kavarodok.
De köszönöm szépen, még agyalok rajta, legalább tanulok -
lanszelot
addikt
válasz
lanszelot #20315 üzenetére
Először is nagyon szépen köszönöm a segítséget mindenkinek
Elfelejtem, hogy van nekem egy Arduino Mega 2560, amit a készlethez kaptam
Azal azonnal meg lett a probléma.Digispark nem tudja kezelni a Rotary Encoder-t.
51% memoria használat van, tehát nem az a gond.
Ugyanaz a program Mega-n tökéletesen fut.
Digispark-on a fent említett problémát dobja.
Annyi a Digispark-on a változtatás, hogy a pin-eket módosítom így:#define led 0
#define CLK 2
#define DT 1Itt a program ami Mega-n gond nélkül működik:
/*LED input*/
#define led 13
/*rotary encoder input*/
// Rotary Encoder Inputs
#define CLK 2
#define DT 3
int counter = 0;
int currentStateCLK;
int lastStateCLK;
int keses = 1000;
String currentDir ="";
uint32_t lastms= 0;
void teker(){
if (millis() - lastms > 200)
{
Serial.print("Direction: ");
Serial.print(currentDir);
Serial.print(" | Counter: ");
Serial.println(counter);
Serial.print(" | késés: ");
Serial.println(keses);
lastms = millis();
if(digitalRead(DT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
// Remember last CLK state
lastStateCLK = currentStateCLK;
}
}
void setup() {
// Set encoder pins as inputs
pinMode(CLK,INPUT_PULLUP);
pinMode(DT,INPUT_PULLUP);
/*LED pin output*/
pinMode (led, OUTPUT);
// Setup Serial Monitor
Serial.begin(9600);
// Read the initial state of CLK
lastStateCLK = digitalRead(CLK);
/* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
attachInterrupt(0, teker, CHANGE);
}
void loop() {
// Read the current state of CLK
currentStateCLK = digitalRead(CLK);
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
} -
lanszelot
addikt
válasz
lanszelot #20311 üzenetére
Meg kell várjam a Nano -mat, mert lehet, hogy a RotEnc hibás.
A linkelt pelda sem működik, pedig annak már kellene.
/SW nincs bekötve, így semmit se jelent az a pár sor jelenleg/keses változó vagy nem változik, vagy nem kerül be a delay -be.
/*LED input*/
#define led 0
/*rotary encoder input*/
// Rotary Encoder Inputs
#define CLK 2
#define DT 1
#define SW 4
int counter = 0;
int currentStateCLK;
int lastStateCLK;
int keses = 1000;
String currentDir ="";
unsigned long lastButtonPress = 0;
void setup() {
// Set encoder pins as inputs
pinMode(CLK,INPUT);
pinMode(DT,INPUT);
pinMode(SW, INPUT_PULLUP);
/*LED pin output*/
pinMode (led, OUTPUT);
// Setup Serial Monitor
Serial.begin(9600);
// Read the initial state of CLK
lastStateCLK = digitalRead(CLK);
}
void loop() {
// Read the current state of CLK
currentStateCLK = digitalRead(CLK);
// If last and current state of CLK are different, then pulse occurred
// React to only 1 state change to avoid double count
if (currentStateCLK != lastStateCLK && currentStateCLK == 1){
// If the DT state is different than the CLK state then
// the encoder is rotating CCW so decrement
if (digitalRead(DT) != currentStateCLK) {
counter --;
currentDir ="CCW";
if(keses > 100){
keses = keses-100;
}
} else {
// Encoder is rotating CW so increment
counter ++;
currentDir ="CW";
keses = keses+100;
}
Serial.print("Direction: ");
Serial.print(currentDir);
Serial.print(" | Counter: ");
Serial.println(counter);
}
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
// Remember last CLK state
lastStateCLK = currentStateCLK;
// Read the button state
int btnState = digitalRead(SW);
//If we detect LOW signal, button is pressed
if (btnState == LOW) {
//if 50ms have passed since last LOW pulse, it means that the
//button has been pressed, released and pressed again
if (millis() - lastButtonPress > 50) {
Serial.println("Button pressed!");
}
// Remember last button press event
lastButtonPress = millis();
}
// Put in a slight delay to help debounce the reading
delay(1);
} -
lanszelot
addikt
Fix tekerések vannak. Nem lehet félúton megállítani.
1 teljes kör 20 tekerés.
Nem tudom mi a lépés. Gondolom ha nem fix.
Tehát tekerés.
1/20 ot fordítok, azaz egy tekerést, az idő korlát nélkül akkor 10 vagy többnek számolja. Nem tudom mennyi, mert nincs serial monitor digispark-on.
Ha nem találok megoldást, elvileg hét végére megjön a nano amit rendeltem és azzal megnézem mennyi egy tekerés. Azon van serial monitor, de kijelzőt is tudok rárakni. És kiiratom épp mennyit számol.Még mindig úgy gondolom az "if" feltétele nem jó.
Honnan tudom hogy melyik irányba tekerem, erre kell rájönnöm.
Kijavítom az "if" feltételt és akkor a másik irányba is tudom tekerni. -
lanszelot
addikt
Sajnos nem oldotta meg.
module: elegoo rotary encoder
hátha ez segít.jelenlegi kódom így néz ki :
/*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;
}
}
/*update */
previousStateCLK = currentStateCLK;
}
}
void setup() {
/*inicializálja a Rotary Encoder CLK pin-t inputnak , default HIGH !!! */
pinMode(inputCLK, INPUT_PULLUP);
/*rotary encoder pins input*/
pinMode (inputDT, INPUT_PULLUP);
/*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);
}razorbenke92:
nem +-1 extrát ugrik, hanem minimum 10-et.
lehet, hogy többet is, csak azt nem tudom ellenőrizni.
1000 az érték, és 100 -asával csökken, 1 tekerés 100-ra viszi le azonnal.
100 alá nem tud menni.
Serial monitor nem működik digispark-al, így nem tudom ellenőrizni mennyit ugrik 1 tekerésre.Janos250:
Nálam azért nem jó, mert ha 1000 -ről 500-ra akarom levinni, 100 -al csökkentve, akkor 5 ször ugyanaz a csatorna kell változzon. -
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. -
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. -
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 -
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? -
-
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?
-
lanszelot
addikt
válasz
its_grandpa #20152 üzenetére
Először is nagyon szépen köszönöm a "gonosz kérdést", ez nagyon jó, mert pont a scope-val van gondom. Nem tudom hogy működk c++ -ban.
for "i" változója nem azonos a többivel.for változó nincs létrehozva, tehát azonos a kintivel, a függvényen belül létrehozottat használjamivel a függvényen belül létre hoztad, így az más mint amit kint hoztál létre.
Szerintem 3 különálló.2 különbözőViszont jól gondolom-e, ha a függvényben nem hoztad volna létre, csak felülírod az értékét, akkor csak 1?
ha így lenne:int i = 5;
void teszt_elek() {
i = 0;
for ( i = 10 ; i > 0 ; i-- )
{
..... ;
}
}
jól gondolom?for -nak nem így kellene lennie?
for (int i = 0; i < 5; i++) {
}
ahhoz hogy külön legyen a változója? -
lanszelot
addikt
válasz
its_grandpa #20140 üzenetére
Ebben egyszerűbb átlátni.
Ezt gyárilag adták az érzékelőhöz, nem én írtam.Így értetted?
bool b_measure = false;
static bool measure_environment( float *temperature, float *humidity )
{
static unsigned long measurement_timestamp = millis( );
/* Measure once every four seconds. */
if( millis( ) - measurement_timestamp > 3000ul )
{
if( dht_sensor.measure( temperature, humidity ) == true )
{
measurement_timestamp = millis( );
b_measure = true;
}
}
return( b_measure );
} -
lanszelot
addikt
Ennél miért rak mindent static-ba?
Értem mi a static, csak azt nem itt miért használja.
17, 36, 38 sorokMásik kérdés: 4-es sor
Azt írja, hogy kell egy felhúzó ellenállás. De a bekötési rajzán az nam szerepel.
Hova kellhet az az ellenállás?
Én a pozitív és az érzékelő pozitív lába közé tenném. /de egyáltalán nem vagyok biztos benne/ -
lanszelot
addikt
válasz
lanszelot #20127 üzenetére
2ik kérdés visszavonva.
Valami miatt 4 jegyű számokat ít ki gombNyomas értékének, de valójában nem az
Ezt ne mértem miért.
Csak újra rátöltöttem ugyanazt a programot, semmit se változtattam, és gombNyomas értéke 1-4
Viszont akkor is jól működött amikor hülyeséget írt ki /4 jegyű számmal/.lehetséges, hogy a serial monitor hibásan működött?
-
lanszelot
addikt
Volna pár kérdésem a programmal kapcsolatban:
itt a jelenlegi, működő program kód178 sor -> 300ul
211 sor -> 500
Mi a különbség?
Néztem mit jelent az UL , de nem igazán értem.217 sor -> gombNyomas%4
ez hogy működik?
tudom mit jelent a % , gombNyomas / 4 maradéka
De nem értem hogy működik.
Hogy lesz 0,1,2,3 ?
0 mikor nincs maradék, 1 mikor 1 a maradék ...stb
de gombNyomas egy 4 jegyű szám -
lanszelot
addikt
válasz
its_grandpa #20101 üzenetére
Köszönöm szépen
Tanultam/lok elméletet. A nagyon alapok meg is vannak.
Előző programozási tapasztalataim alapján, ha meg vannak az operator-ok. tömbök, változók, loop-ok, statement-ek, függvények.
Ekkor háttérbe kell rakni az elméletet, és el kell kezdeni programozni.
Közben felmerülnek a hiányok, amit ki kell tömni.
De csak elmélettel nem lehet megtanulni.- A fő gondom a scope. Nem találok olyan oldalt ahol megérteném.
pl: itt a 135 -üs sorban scope hiba van, de nem értem miért
- másik nagy gondom, hogy le van írva valami, és úgy nem működik.
pl:#define Gas_pin_digital 2;
ez hibát dob, azt írja így kell:#define Gas_pin_digital (2);
Nem programozni nehéz, hanem megtalálni a hibát. Mert akkor az egészet át kell látni.
Ez egy kezdőnek nem megy. Én pedig kezdő vagyok.
Ezért kell a segítség.Biztos sok hülyeséget kérdezek/írok, de azért mert nem értem.
Vagy nincs az alapokban az amiről kérdezek.
pl : interrupt
Ezeket meg kell tanulnom, de már használat közben, nem szárazon betűkből.
Mindenki más sebességgel tanul/ért meg dolgokat.
És van aki tud magolni, van aki nem. Én nem tudok. Nekem a gyakorlat kell.
Jelenleg meg kell értenem a működését. Most vagyok az ezt innen kiveszem, enyémbe beteszem, itt is működik-e. No, akkor miért nem, és hogy kell, hogy igen. -
lanszelot
addikt
Nem értem, azért kérdezem.
Mivel nem értem nem tudom mit kérdeztek ti.De ez is egy értékadás:
const int ledPin = 6;
Mi a kettő között a különbség?
Ton-ton:
tehát amit a modul mellé letöltök a Library -ból az csak egy program kód részlet
Ezek szerint én is meg tudok írni egy modulhoz egy ilyet a modulhoz?
Mert amiket néztem, azok pár soros program részek a *.h -ban.
Illetve van még ott más kiterjesztés is.Azért kérdem, mert van egy másik hőmérséglet érzékelőm, és ott a példában csak celziusz van, nincs farentheit. Tudom, írjak egy átváltást,és kész, de ha tudja akkor minek. Viszont hogy tudom meg miket tud. Mármint milyen alap parancsok, vagy mik vannak benne, aminek ne íjak extra sorokat.
Remélem érthető amit szerettem volna kérdezni. -
lanszelot
addikt
válasz
its_grandpa #20089 üzenetére
kiteszem functionból a 2 változót:
#include <MQ135.h> /*gaz erzekelo, de nem kell neki igazabol*/
#include <Adafruit_SSD1306.h> /*oled display*/
#include <splash.h> /*oled display -nek kell*/
#include <max6675.h> /*homero*/
int thermoDO = 10; /*valtozo a homero DO pin -nek*/
int thermoCS = 9; /*valtozo a homero CS pin -nek*/
int thermoCLK = 8; /*valtozo a homero CLK pin -nek*/
volatile uint32_t debounce= 0;
byte gomb = 0;
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
const int ledPin = 6; /*LED pin*/
const byte interruptPin = 3;
volatile int gombNyomas = 0 ; /*valtozo a gomb nyomas szamlalasara*/
uint32_t lastms= 0;
int sensorValue = analogRead(A0);
int isgas = digitalRead(2);így nem működik a gáz érzékelő, csak ha a functionba van az a 2 változó
Már annyi minden lett írva, hogy teljesen be vagyok kavarodva.
Kezdő vagyok, és ennyire még nem tudom követni fejben a kód módosításokat.
"tüntesd el a kódból azokat amiket én "magic number"-nek nevezek"
-nem tudom itt mit kell tennem"azonos display sorokat kirakod egy void disp_first() fv.-be"
valójában csak ennyi az azonos:display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");minden más változik
Gondoltam én is rá, de nem akartam már bele keveredni
így is nehéz megértenem mi mit csinálekkold: erről a *.h file-ról mesélhetnél, hogy hogy működik, mert próbálok rájönni, amikor be include -olok a library -ból valamit, hogy akkor mi is történik.
mert sosem tudom, hogy mik a lehetőségek, csak követem a sablont. -
lanszelot
addikt
válasz
its_grandpa #20075 üzenetére
#20071 ben ott van a teljes kód felette.
Minden változót 1 helyen hozok létre, kivéve 3-at.
Ebből:
sensorValue, isgas , ha ezeket kiteszem a function-ból a többi változóhoz, akkor a gáz érzékelő nem működik.
Scope miért nem éri el a function -on kívül?
Mert gondolom ezért nem működik. -
lanszelot
addikt
válasz
bagarol #20070 üzenetére
Úgy néz ki így már működik
#include <MQ135.h> /*gaz erzekelo, de nem kell neki igazabol*/
#include <Adafruit_SSD1306.h> /*oled display*/
#include <splash.h> /*oled display -nek kell*/
#include <max6675.h> /*homero*/
int thermoDO = 10; /*valtozo a homero DO pin -nek*/
int thermoCS = 9; /*valtozo a homero CS pin -nek*/
int thermoCLK = 8; /*valtozo a homero CLK pin -nek*/
volatile uint32_t debounce= 0;
byte gomb = 0;
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
const int ledPin = 6; /*LED pin*/
const byte interruptPin = 3;
volatile int gombNyomas = 0 ; /*valtozo a gomb nyomas szamlalasara*/
uint32_t lastms= 0;
void gombotnyom(){
gomb++; /* növeljük 1-el a gombnyomások számát */
if (millis() - debounce > 80){ /* eltelt 80 msec ? */
gombNyomas ++; /* növeljük 1-el a gombnyomások számát */
if (gombNyomas >3) gombNyomas = 1;
debounce = millis();
}
}
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void mindenRajtaVan() {
int sensorValue = analogRead(A0); /*valtozo a gaz erzekelo alalog pin -nek*/
int isgas = digitalRead(2); /*valtozo a gaz erzekelo digitalis pin -nek, ez arra kell, ha gas van akkor jelet ad, nem kell kulon erteket adni*/
String gas; /*valtozo a gaz erzekelo gas vagy no gas kiirasahoz*/
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(1); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.setTextSize(1); /*text size 2*/
display.setCursor(0,50); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2 = ");
display.print(sensorValue);
display.print(" PPM ");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(80, 47, 40, 15, 2, WHITE);/*negyzet a gas felirat kore feher*/
digitalWrite(ledPin, HIGH);} /*LED bekapcsol*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK); /*negyzet a gas felirat kore fekete*/
digitalWrite(ledPin, LOW);} /*LED kikapcsol*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void homeroVanRajta() {
digitalWrite(ledPin, LOW); /*LED kikapcsol*/
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(10,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("C = ");
display.print(thermocouple.readCelsius());/*Celsius*/
display.setTextSize(2); /*text size 2*/
display.setCursor(10,40); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("F = ");
display.print(thermocouple.readFahrenheit());/*Fahrenheit*/
display.display(); /*to shows or update your TEXT*/
}
void gazVanRajta() {
int sensorValue = analogRead(A0); /*valtozo a gaz erzekelo alalog pin -nek*/
int isgas = digitalRead(2); /*valtozo a gaz erzekelo digitalis pin -nek, ez arra kell, ha gas van akkor jelet ad, nem kell kulon erteket adni*/
String gas; /*valtozo a gaz erzekelo gas vagy no gas kiirasahoz*/
display.clearDisplay(); /*this line to clear previous logo*/
display.setTextSize(1); /*text size 3*/
display.setCursor(3,0); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("Thermometer by Gabor");
display.setTextSize(2); /*text size 2*/
display.setCursor(0,20); /*ez tartja egy helyben a szöveget*/
display.setTextColor(WHITE); /*without this no display*/
display.print("CO2= ");
display.print(sensorValue);
display.setTextSize(1);
display.print(" PPM");
/*sensorValue < 90 ellenorzeshez, amugy igas valtozo kell ami a digitalis pin*/
if (sensorValue < 90) {gas = "No Gas";}
else {gas = " Gas";
if(a) {display.drawRoundRect(30, 39, 60, 22, 2, WHITE);/*negyzet a gas felirat kore feher*/
digitalWrite(ledPin, HIGH);} /*LED bekapcsol*/
else {display.drawRoundRect(30, 39, 60, 22, 2, BLACK); /*negyzet a gas felirat kore fekete*/
digitalWrite(ledPin, LOW);} /*LED kikapcsol*/
a^=1;
}
display.setTextSize(2);
display.setCursor(20,42);
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void megnyomva() {
switch (gombNyomas) {
case 0:
mindenRajtaVan();
break;
case 1:
homeroVanRajta();
break;
case 2:
gazVanRajta();
break;
}
} /* megnyomva_end */
void setup() {
Serial.begin(9600); /*elindítja a sorosportot, 9600 baud beállítással. Ez azért jó, mert a Serial Monitoron a program futását tudod monitorozni*/
pinMode(ledPin, OUTPUT); /*inicializálja a LED pin -jet outputnak*/
pinMode(interruptPin, INPUT_PULLUP); /*inicializálja a gomb pin-t inputnak , default HIGH !!! */
attachInterrupt(digitalPinToInterrupt(interruptPin), gombotnyom, LOW); /* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
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() {
if (millis() - lastms > 500)
{
lastms = millis();
if (gomb) /* volt valamennyi gombnyomás */
{
gomb = 0;
gombNyomas = gombNyomas%3 ;
Serial.println(gombNyomas); /* kiírjuk hány gombnyomásnál tartasz */
}
megnyomva();
}
}- A loop -ból kivettem a gombNyomas++ , mert a gombotnyom functionban is hozzá van adva meg ott is, akkor 2-t ad mindig hozzá.
- Illetve, ha jól értettem nem kell a kondenzátor, ezért így kötöttem be a gombotNagyon szépen köszönöm a segítséget mindenkinek
Lesz mit még agyalnom rajta, hogy teljesen megértsem mi hogyan
kérdés:
gáz érzékelőnek miért kell hogy benne legyen a function-ba a 3 változója?
Ha kiteszem a többi változóhoz a gáz érzékelő nem működik. -
lanszelot
addikt
Huh, ez nekem magas. Nagyon kezdő vagyok még ehhez.
Az ellenállás nélkül, de úgy raktam be.
Tegnap azt írta vki vegyem ki az ellenállást, és 1-10 nano -s kondenzátort rakjak be. Azért úgy csináltam.Amit írtál azt nem értem. A kalkulátort se tudom hogy használjam.
Az addig ok, hogy berakok egy kondenzátort .
Ezt a debounce-t egyáltalán nem értem.80ms kevés a hőmérőnek. Minimum 270ms kell.
Nem tudom hol allitom az interrupt idejét.
Új hozzászólás Aktív témák
Hirdetés
- AKCIÓ! Gigabyte B650M R7 7700X 32GB DDR5 1TB SSD RTX 3080Ti 12GB Cooler Master H500P WHITE 750W
- BESZÁMÍTÁS! Asus M5A99FX PRO R2.0 990FX chipset alaplap garanciával hibátlan működéssel
- Telenor 5G Indoor WiFi Router (FA7550) + töltő (bolti áruk 100.000Ft)
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- ÁRGARANCIA! Épített KomPhone Intel i9 14900KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged