- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- SD-kártyát vennél? Ezért ne csak a GB-ot nézd! – Tech Percek #9
- ASUS notebook topic
- Melyik tápegységet vegyem?
- Milyen SSD-t vegyek?
- Azonnali alaplapos kérdések órája
- ASUS blog: Ideális olcsó utazós gép lett az új Vivobook S14
-
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
-
lanszelot
addikt
Hmmm, ez a baj. Nem tudtam a scope -ot.
Nem tudtam, hogy a loop -ból oda ki tud nyúlni.gombbal van most gond.
ha kikötöm, akkor is össze vissza nyomkodja magát. Azaz a gombnyomas valtozo értéke változik valamiért.#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*/
int gombNyomas = 1; /*valtozo a gomb nyomas szamlalasara*/
int gombPin = 5; /*valtozo a gomb pin -nek*/
int gombAllapot = 0; /*valtozo a gomb allapot olvasasahoz*/
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
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*/
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void mindenRajtaVan() {
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*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
void homeroVanRajta() {
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.display(); /*to shows or update your TEXT*/
}
void gazVanRajta() {
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(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*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
display.display(); /*to shows or update your TEXT*/
}
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(gombPin, INPUT); /*inicializálja a gomb pin -jet inputnak*/
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(500);
/*read the state of the pushbutton value:*/
gombAllapot = digitalRead(gombPin);
/*check if the pushbutton is pressed. If it is, the buttonState is HIGH:*/
if (gombAllapot == HIGH) {
gombNyomas++;
}
Serial.println(gombNyomas);
if (gombNyomas == 1) {
mindenRajtaVan();
} else if (gombNyomas == 2) {
homeroVanRajta();
} else if (gombNyomas == 3) {
gazVanRajta();
} else if (gombNyomas > 3) {
gombNyomas = 1;
}
}gombnyomas értéke:
MAX6675 test
1
2
2
2
3
3
4
2
2
3
4
1
2
2pedig nincs semmi az 5-ös pin-en.
Lehúztam.Amúgy hogyan kell a gombot helyesen bekötni?
Ahogy én gondoltam: negativ -> gomb -> 5-ös pin
Pozitív nélkül
Vagy nem földelni kell gombnyomáskor az 5-ös pint, hanem 3V vagy 5V-t adni neki gombnyomáskor? -
lanszelot
addikt
Hello,
C++ function létrehozással - meghívással gondom van
mivel még sohase csináltam, csak próbálgatom, de valami nem jó
#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*/
int gombNyomas = 1; /*valtozo a gomb nyomas szamlalasara*/
int gombPin = 5; /*valtozo a gomb pin -nek*/
int gombAllapot = 0; /*valtozo a gomb allapot olvasasahoz*/
byte a = 0; /*valtozo a gaz erzekelo negyzet villogashoz*/
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
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(gombPin, INPUT); /*inicializálja a gomb pin -jet inputnak*/
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() {
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*/
/*For the MAX6675 to update, you must delay AT LEAST 250ms between reads!*/
delay(500);
/*read the state of the pushbutton value:*/
gombAllapot = digitalRead(gombPin);
/*check if the pushbutton is pressed. If it is, the buttonState is HIGH:*/
if (gombAllapot == HIGH) {
gombNyomas++;
}
if (gombAllapot > 3) {
gombNyomas = 1;
}
switch(gombAllapot) {
case 1:
mindenRajtaVan();
break;
case 2:
homeroVanRajta();
break;
case 3:
gazVanRajta();
break;
}
void mindenRajtaVan() {
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*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
}
void homeroVanRajta() {
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*/
}
void gazVanRajta() {
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(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*/
else {display.drawRoundRect(80, 47, 40, 15, 2, BLACK);} /*negyzet a gas felirat kore fekete*/
a^=1;
}
display.print(gas);
}
display.display(); /*to shows or update your TEXT*/
}hiba üzenet:
C:\Users\robag\Documents\Arduino\gas_homero_gomb_nano\gas_homero_gomb_nano.ino: In function 'void loop()':
gas_homero_gomb_nano:56:25: error: a function-definition is not allowed here before '{' token
void mindenRajtaVan() {
^
gas_homero_gomb_nano:88:25: error: a function-definition is not allowed here before '{' token
void homeroVanRajta() {
^
gas_homero_gomb_nano:106:22: error: a function-definition is not allowed here before '{' token
void gazVanRajta() {
^
gas_homero_gomb_nano:130:5: error: 'mindenRajtaVan' was not declared in this scope
mindenRajtaVan();
^~~~~~~~~~~~~~
gas_homero_gomb_nano:133:5: error: 'homeroVanRajta' was not declared in this scope
homeroVanRajta();
^~~~~~~~~~~~~~
gas_homero_gomb_nano:136:5: error: 'gazVanRajta' was not declared in this scope
gazVanRajta();
^~~~~~~~~~~
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
exit status 1
a function-definition is not allowed here before '{' token -
lanszelot
addikt
-
válasz
lanszelot #19993 üzenetére
Egy változó állapota alapján döntsd el, hogy mi legyen a kiírás, a gombbal a változó értékét változtasd (a.k.a. "állapotgép"). Hogy aztán a loop-ban if-et, switch-et, vagy függvénypointer-tömböt használsz, az már teljesen egyéni preferencia kérdése. Általában attól függ mit használok, hogy később szeretném-e bővíteni a funkciókat, vagy elég egy quick&dirty megoldás.
-
lanszelot
addikt
válasz
lanszelot #19848 üzenetére
Hello,
Össze raktam a gáz érzékelőt és a hőmérőt.
Jelenleg mind a kettő a kis kijelzőn külön sorban mutatja az értéket.
Gondoltam ha tennék be egy gombot hogy vállthassak a
- ket értek együtt
- csak hőmérő értéke
- csak gáz érzékelő értéke
Között.
Function -ba kell raknom a kijelző megjelenítéseket és gomb nyomásra más más function -t futtassak?
Vagy hogy szokás megoldani? -
ViZion
félisten
válasz
lanszelot #19990 üzenetére
"Meg próbálom az asszonyt rávenni csináljunk új videót, hogy látsd
"
...
"Már nem úgy müködik....hmmm
Ez fura. Pihent kicsit és mindegy hogy dugom, ugyanúgy működik."Hááát, nekem nincs kérdésem.
Aryes miatt van, a hsz-e után már nem tudtam ugyan úgy olvasni, mint előtte...
-
lanszelot
addikt
Már nem úgy müködik....hmmm
Ez fura. Pihent kicsit és mindegy hogy dugom, ugyanúgy működik.
A digispark-ba a vezetékeket, a pc-be a digispark-ot
Viszont vmi kondenzátor vagy valami megtartja az onboard led-et pár másodpercig kék vezeték lehúzás után, ha alapból világít az onboard led.De a lényeget megtudtam, hogy melyik melyik pin a kódban.
Köszönöm szépen a segítségetVégre jöhet a project amit kinéztem rá
-
válasz
lanszelot #19988 üzenetére
Meg próbálom az asszonyt rávenni csináljunk új videót
Csak azt a másik PH-ra töltsd fel!
A PB4 okát már írtam, a PB3-at nem tudom megfejteni.
Ha azt írod, hogy ezzel a progival, abból én honnan a fenéből tudjam, hogy ott találom a bekötési rajzot?? Legyél már egyértelműbb.
-
lanszelot
addikt
"próbálom értelmezni," - ezért raktam be a linket, ahol ott a bekötési rajz
amúgy a piros vezeték: gomb és pozitív 5V boardról /ami fehér a pozitív, mert a pirost nem bírtam oda dugni, hogy ne ugorjon ki/ amikor a board-ot mutatom ott látszik a fehér hova van dugvaNem csinálhatok zárlatot, mert ahogy írtam, ha lehúzom a board-ot usb-ről, és PB4 -be dugva dugom vissza, akkor alapból nem világít, csak ha megnyomom a gombot akkor világít, ebben az esetben ha átdugom PB3-ra, akkor a bread board led világít folyamatosan, és gomb nyomásra elalszik.
Meg próbálom az asszonyt rávenni csináljunk új videót, hogy látsd -
válasz
lanszelot #19986 üzenetére
File -> preferences -> URL -hez lehetséges vlahogy több linket becsatolni?
A pirossal bekarikázott gombra nyomva új sorként tudsz betenni új linket, vagy a szövegmezőbe ;-vel elválasztva, de előbbi átláthatóbb.A hozzászólás második részét próbálom értelmezni, de nem nagyon megy.
A gomb felső részére egy piros vezeték van kötve, aminek nem látom, hogy hová vezet a másik vége, vagyis nem tudom, hogy a gombbal mit kötsz mire.Írtam, hogy a PB3, PB4 lábak kettős funkciót töltenek be, egyrészt tudod őket vezérelni, másrészt az USB csatlakozó D+, D- lábaival vannak összekötve. Ezért gyárilag van egy 1k felhúzó (ha jól emlékszem?) ellenállás és egy Zener dióda a GND irányába, mindkét lábon. Ez azt jelenti, hogy 3,3V feszültség van rajtuk akkor is, ha amúgy nem kéne neki. Ez okozhat nem várt viselkedést, például ha LED-et kötsz rá, az mindkét irányban világítani fog. Szerintem ebben rejlik a válasz a kérdésedre. Hogy az onboard LED miért alszik ki? Szerintem rövidzárlatot csináltál a gombbal.
-
lanszelot
addikt
Hello,
Volt egy kis időm, és a te módszereddel sikerült életet lehelni beleKét kérdésem lenne:
- Arduino progi : File -> preferences -> URL -hez lehetséges vlahogy több linket becsatolni?
Mert kell ennek a Digispark-nak, és a Nano -nak is kell.
Állandóan be kell másolgatnom amit épp rádugok.- ezzel a progival próbálgatom megtudjam melyik pin micsoda
/progin változtattam: led pin 1 , button pin 2/const int buttonPin = 2;
const int ledPin = 1;
Nekem a button - arduino vezetéken van egy led
Ha PB3 -ba dugom akkor a led-emet kontrollálom a gombbal
Ha PB4-be dugom az onboard led -et kontrollálom a gombbal
video róla bocsánata a minőségért, csak 2 kezem van
Hogy is van ez? Miért vált led-et, a program ugyanaz?
Az se mindegy melyikre dugom, mikor bedudom a Digisparkot usb-re.
Amelyik bedugáskor be van kötve az alapból kikapcsolt, és gomb nyomásra bekapcsol.
A másik fordítva, ahogy a videón is látszik.
De ha a másikkal dugom be először, akkor az lesz alapból kikapcsolt. -
válasz
lanszelot #19981 üzenetére
A gond a pdf-el, hogy hülyeséget ír.
COM portot nem tudsz akkor sem beállítani, ha a fejed tetejére állsz, mert a Digispark nem tartalmaz USB-soros átalakítót, mint az UNO.
A leírás valószínűleg arra gondol, hogy telepítés után az UNO van default beállítva, vagy egy olyan pdf-et alakítottak át, amit eredetileg az UNO mellé küldtek, csak elfelejtették kivenni az ide vonatkozó részt, nem tudom. -
KoVee84
senior tag
Csak a tesztelés miatt lett rossz ott az érték, egyébként minden név 7 napig jelenik meg, a Szelektív kuka felirat meg a 4. hét utolsó napján.
Nyilván lehet ezt sokkal jobban is csinálni, de az én programozó tudásommal ennek is nagyon örülök és majd nekiállok még csiszolgatni. Köszönöm az eddigi segítségeket!
-
lanszelot
addikt
Félre értettél.
Egyáltalán nem mondtam, hogy úgy kell ahogy a gyártó mondja.
Úgy néz ki én vagyok gyenge elméjű, és nem akartam marhaságokat írni ide.Amit szerettem volna:
Amikor megvettem a gyártó ígért: leírást, installalási útmutatót, példa programot, és ha bármi gond lenne segítséget.
Ezt a gyártó garantálja. És állítja hogy az úgy jó ahogy ő írja.
Meg is osztottam amit küldött pdf-et.
Amit sikerült valamennyire kibogoznom.A gond a pdf-el a sorrend.
Gyártó pdf szerinti sorrend:
+ installald az Arduino ide-t
+ Valaszd ki a board -odat
+ Válaszd ki a portot
+ Linkeld be a jsont
+ Installald a board managerben
+Installald a windows driver -tTehát a leges legvégén kell a drivert installálni.
Ez így szerintetek rendben van ez a sorrend?Mert így én nem tudtam felrakni.
Ezért írtam nekik, hogy hol rontottam el.
Még videót is küldtem róla, meg képeket.
Azt írták, hogy én nem tudok telepíteni és keressek valakit aki tud.
[kép]
Ha ennyire hülye vagyok akkor nem akartam itt marhaságokat írni.
Szerettem volna saját hibámat kizárni.
Ezért olvasgatok utána, de nem találom hol hibáztam. -
ReFleXx
addikt
illetve ha mar van wifi, akkor ki lehetne rakni a netre valahova egy tablazatot hogy adott heten ki a soros es azt lekerdezve irhatna ki a kapott nevet, ennek meglenne az az elonye, hogy tavolrol frissitheto a lista, nem kell ujra programozni az eszkozt ha valaki kimarad mert epp nyaral stb
-
válasz
KoVee84 #19967 üzenetére
Mondd már el, hogy a szelektívvel mi újság van? Mert szerintem nem azt csinálja a program, amit az eredeti.
4 hétig kiír egy-egy nevet, aztán 6 napig azt, hogy szelektív.
Ha bármi miatt újraindul, a te neved lesz kint, ahogy már írták, de ezen nem is tudsz változtatni. Akár elemcsere vagy egy jóindulatú szomszéd miatt állandóan ti lesztek a Soros
Miért újraindulással nullázod a számlálót, miért nem használod ki, hogy az rtc memória nem veszik el?
Én a mostani helyett naponta ébreszteném fel, kiírnám rá a dátumot, hogy látható legyen, ha valamiért lefagyott volna vagy bármi (nem változik a dátum).
Egyszer, újraindításkor wifiről frissíteném az időt. Utána csak akkor, ha nagyon elmászik (állítólag nem túl pontos, nekem nincs tapasztalatom vele, de ha következetesen pontatlan, azt lehet korrigálni programból is).
Nem az eltelt napokat venném alapul, hanem mikor lejár egy mandátum, kiszámítanám a következő változás napját és azt írnám a RTC memóriába. Ezzel azt lehet elérni, hogy soha többet nem kell piszkálni, ha újraindul, ha bármi történik (két napra kiveszed az akkut tölteni) mindig jó adatot fog mutatni.
-
KoVee84
senior tag
válasz
its_grandpa #19976 üzenetére
-
válasz
lanszelot #19972 üzenetére
1. Ahogy a kolléga írta, a bootloader nem feltétele a blink programnak. Bár ha demó program feltöltésére vették a fáradságot, talán az is rendben van.
2. Az is a gyártói leírásban volt, hogy az UNO-t kell kiválasztani a listából (szerinted).Ha a leírás jobban tudja, mint én, akkor ne itt kérdezd, hanem kövesd a leírást.
-
its_grandpa
tag
válasz
KoVee84 #19967 üzenetére
Bocs de ez így egy ~ 130 soros borzalom.
A case ágak 0-3 ig ugyanazok, csak a név kiírása miatt van benne "magic number" azaz a texts[n].
Ez kb. a fele, 65 sor és remélem ugyanazt csinálja.int vref = 1100;
const char* persons[] = {"Kovács","Könözsi","Csepura","Németh"};
const uint64_t egy_nap = 86400000000;
RTC_DATA_ATTR unsigned int reboot_counter = 0;
void setup()
{
Serial.begin(115200);
delay(10);
epd_init();
delay(10);
// Correct the ADC reference voltage
esp_adc_cal_characteristics_t adc_chars;
}
void loop()
{
int persons_no = reboot_counter; // csak a szépség kedvéért
if reboot_counter < 4:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (persons[ persons_no]), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 7);
esp_deep_sleep_start();
}
else if reboot_counter = 4:
{
epd_poweron();
delay(10);
int cursor_x = 550;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, ("SZELEKTÍV KUKA"), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 6);
esp_deep_sleep_start();
}
else
{
esp_restart();
}
} /* loop */
A switch ágak végére meg illenék a break csak a megszokás miatt.
(ez a notepad++ ból történő másolás, kódformázás nem lett az igazi, bocs)
-
KoVee84
senior tag
válasz
ReFleXx #19969 üzenetére
Kisegítesz a kódrészlettel?
Van egy másik próblémám még egyébként, most próbáltam a wifi ntp-vel kiegészíteni a kódot, de mivel a opensans72eb.h majdnem 5 MB, ezért ha újrafordítom a kódot, akkor: Sketch uses 1753729 bytes (133%) of program storage space. Maximum is 1310720 bytes.133%
-
KoVee84
senior tag
válasz
KoVee84 #19966 üzenetére
#include <Arduino.h>
#include "epd_driver.h"
#include "font/firasans.h"
#include "font/opensans72eb.h"
#include "esp_adc_cal.h"
#include "pins.h"
#include "time.h"
int vref = 1100;
const char* texts[] = {"Kovács","Könözsi","Csepura","Németh"};
const uint64_t egy_nap = 86400000000;
RTC_DATA_ATTR unsigned int reboot_counter = 0;
void setup()
{
Serial.begin(115200);
delay(10);
epd_init();
delay(10);
// Correct the ADC reference voltage
esp_adc_cal_characteristics_t adc_chars;
}
void loop()
{
switch (reboot_counter)
{
case 0:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[0]), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 7);
esp_deep_sleep_start();
}
case 1:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[1]), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 7);
esp_deep_sleep_start();
}
case 2:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[2]), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 7);
esp_deep_sleep_start();
}
case 3:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[3]), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 7);
esp_deep_sleep_start();
}
case 4:
{
epd_poweron();
delay(10);
int cursor_x = 550;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, ("SZELEKTÍV KUKA"), &cursor_x, &cursor_y, NULL);
reboot_counter++;
epd_poweroff_all();
esp_sleep_enable_timer_wakeup(egy_nap * 6);
esp_deep_sleep_start();
}
case 5:
{
esp_restart();
}
}
} -
válasz
lanszelot #19962 üzenetére
Nem lesz com port!
Feltöltés előtt ki kell húzni a lapot, és amikor végzett a fordítással, írni fogja, hogy dugd be a cuccot a gépbe, na akkor dugd be újra. Lesz rá 60 másodperced.
Nincs itt semmi hiba.szerk.: csak most láttam, hogy az előzőt még kiegészítetted. A driver telepítés probléma amiatt lehet, amit írtam korábban, tudniillik vagy nincs rajta bootloader, vagy valamiért nem szereti azt az usb portot, amire dugod. Utóbbi esetben próbáld meg egy 2.0-s USB hub-ra dugni, de semmi más ne legyen bele dugva, csak ez. Nekem ez jött be, pár évvel ha visszaolvasol, láthatod mennyit qrvaanyáztam, mire rájöttem, mi a gond
-
ReFleXx
addikt
válasz
KoVee84 #19963 üzenetére
Rtc memoriaban tudsz tarolni es megjegyzi deepsleep alatt.
gugli elso: [link]
nem irtad vane wifire csatlakozasra lehetoseg.
amugy a 170mikroamper jol hangzik, van devkit ami ennek tobbszoroset eszi nagysagrendekkel, de ez is 10xese annak amit maga a modul eszik deepsleepben -
KoVee84
senior tag
válasz
ReFleXx #19959 üzenetére
Elvileg korábban valahol azt olvastam, hogy nagyon jó a fogyasztása, sleep modeban 170 mikroamper, de ez szinte biztos, hogy nem a deep sleepre vonatkozik.
Viszont a deepsleep miatt dobhatom ki a korábbi kódom, mert a millis() nullázódik. Van esetleg valami reboot számláló, mert akkor egyszerűen azt tenném a casekbe?
-
lanszelot
addikt
ami még kimaradt:
board lista: [kép]
/első az uno miatt ami nekem nincs, de nem is értem minek az uno
másik board lista: [kép]
hiába van kiválasztva, nincs com port
com lista: [kép]
megvárom mit jelez vissza a gyártó.
hétvégéig úgy se nagyon van időm
pénteken majd neki ugrok, hogy a te két félédet is megpróbáljam
újra lett indítva a gép, tehát az se lehet hiba -
ReFleXx
addikt
válasz
KoVee84 #19956 üzenetére
egyebkent nem kapcsolodik fel wifire sem a kutyu?
Van wifi ott ahova telepited? Honnan tudja mennyi a pontos ido? A belso ora nem pontos ennyire siman elmaszik 5%ot is,de ha pontos lenne akkor is elcsuszna neked az ido mert x hetente ujrainditod es amig ujraindul elmaszik az idozites. Ha nincs net akkor kelleni fog kulso RTC , hogy tudja mikor van uj het vagy kell net es akkor idonkent felebreszted deepsleepbol besynceled a pontos idot netrol es ujraaltatod. -
KoVee84
senior tag
Nem raktam deep sleepet...
órakezelésben tudtok segíteni?
Íme a kód:#ifndef BOARD_HAS_PSRAM
#error "Please enable PSRAM !!!"
#endif
#include <Arduino.h>
#include "epd_driver.h"
#include "font/firasans.h"
#include "font/opensans72eb.h"
#include "esp_adc_cal.h"
#include "pins.h"
#include "time.h"
int vref = 1100;
const char* texts[] = {"Kovács","Könözsi","Csepura","Németh"};
const unsigned long het1 = 604800000UL;
const unsigned long het2 = 1209600000UL;
const unsigned long het3 = 1814400000UL;
const unsigned long het4 = 2419200000UL;
const unsigned long szelektiv = 2332800000UL; // utolsó nap
//teszt
//const uint32_t het1 = 20000;
//const uint32_t het2 = 40000;
//const uint32_t het3 = 60000;
//const uint32_t het4 = 80000;
//const uint32_t szelektiv = 70000;
void setup()
{
Serial.begin(115200);
delay(10);
// Correct the ADC reference voltage
esp_adc_cal_characteristics_t adc_chars;
epd_init();
epd_poweron();
epd_clear();
delay(10);
// első hét
//feszültség
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
//név
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[0]), &cursor_x, &cursor_y, NULL);
epd_poweroff_all();
}
void loop()
{
unsigned long currentMillis = millis();
switch (currentMillis)
{
case het1:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[1]), &cursor_x, &cursor_y, NULL);
epd_poweroff_all();
break;
}
case het2:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[2]), &cursor_x, &cursor_y, NULL);
epd_poweroff_all();
}
case het3:
{
epd_poweron();
epd_clear();
delay(10);
uint16_t v = analogRead(BATT_PIN);
float battery_voltage = ((float)v / 4095.0) * 2.0 * 3.3 * (vref / 1000.0);
String voltage = "Feszültség: " + String(battery_voltage) + "V";
Serial.println(voltage);
int cursor_x = 60;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, (char *)voltage.c_str(), &cursor_x, &cursor_y, NULL);
cursor_x = 180;
cursor_y = 290;
writeln((GFXfont *)&OpenSansExtraBold72, (texts[3]), &cursor_x, &cursor_y, NULL);
break;
}
case szelektiv:
{
epd_poweron();
delay(10);
int cursor_x = 550;
int cursor_y = 475;
writeln((GFXfont *)&FiraSans, ("SZELEKTÍV KUKA"), &cursor_x, &cursor_y, NULL);
epd_poweroff_all();
break;
}
case het4:
{
esp_restart();
}
}
} -
lanszelot
addikt
A gyártói leírást. Belinkeltem a pdf-et. Ott van minden lépés, bár össze vissza írták. Abban vannak a linkek is.
1.8.18
Még nem tudtam azokat próbálni, mert dolgozom. Ezért irtam, hogy pénteken fogom tudni próbálni, mert akkor már ünnep lesz és lesz időm
Hétközben nem nagyon van időm, max 10-15 perc. -
lanszelot
addikt
Más a driver
Uno-t kell kiválasztani
Bár nekem egyáltalán nem működik.
Eszközkezelőben ott van , de nincs com portja.
Illetve az Arduino -ban hibát dob:
"warning: non trusted contribution, skipping script execution (c:\users\lanszelot\appdata\local\arduino15\packages\digistump\tools\micronucleus\2.0a4\post_install.bat)"
Megpróbáltam manuálisan installálni arról a helyről, de hibát dob úgy is. -
KoVee84
senior tag
válasz
vargalex #19940 üzenetére
E-ink kijelzőt használok és úgy, hogy csak hetente 1x frissül, addig a kijelző ki van kapcsolva. De délután berakom a kódot.
-
lanszelot
addikt
Hello,
A gyártó küldött egy használati útmutatót.
Itt másképpen telepítik Arduino-ba.
Megosztom, hátha érdekel -
vargalex
félisten
válasz
KoVee84 #19938 üzenetére
Mire iratod ki az adatokat? Ha nem e-ink kijelzőre, akkor ugye a kijelzés is harap erősen az akkuból.
Egyébként, ha e-ink, akkor ahogy a kolléga mondja, deep sleep-be kell küldeni az ESP32-t (én ESP8266-al csináltam percenként ébredő hőmérőket, amik 10 percenként wifi-re is csatlakoznak és post-olják az addig mért adatokat, azok egy 18650-es cellával 3-4 hónapig elvannak) és időzítve ébreszteni.Szerk.: mondjuk a developer board-ok nem biztos, hogy ideálisak a feladatra, mivel ha az ESP-t deep sleep-be is küldöd, attól a körítés, ami a lapon van, fogja enni az akkut. És nem biztos, hogy maga az ESP a legnagyobb fogyasztó. Én csupasz ESP12E-kett használtam a projektemhez.
-
válasz
KoVee84 #19938 üzenetére
Ez jól hangzik.
Nem ismerem ezt a kütyüt, csak a fotó alapján látom, hogy ESP32 van rajta, és abban van RTC modul, ha nem is a legpontosabb. Arra viszont szerintem pont jó, hogy felébressze a cuccot mondjuk minden éjszaka, NTP szerverről frissítse magát és visszaaludjon. Szívesen segítenék, de ESP-ben nem vagyok különösebben jártas, és a kütyü nélkül tesztelni sem tudnám, de ha ide beteszed (ha hosszú, töltsd fel valahová) akkor biztos megoldjuk.
-
KoVee84
senior tag
Elvileg kész van, csak 5 nap alatt lezabálja a 18650-es aksit
4 családos társasházban lakunk, ahol minden héten másik család a "hetes" (kuka kirakás, lépcsőház felmosás, stb).
Csináltattam képkeretet, belekerül a Lilygo 18650-es akkuval, minden héten másik család neve jelenik meg, kiírja az akkufeszt, meg hogy mikor kell kirakni a szelektívet.A lilygo honalpján ezt írja azt írja, hogy Support PCF8563 RTC, ebből én valamiért nem arra gondoltam, hogy tudja az időkezelést.
Ha gondolod, akkor este szívesen átküldöm a kódot, de nyilván senkitől nem várom/várhatom el, hogy megcsinálja helyettem
-
KoVee84
senior tag
Leprogramoztam a Lilygo E-Papert, de a millis()-t vagy delay()-t használva a fogyasztása brutális, így arra gondoltam, hogy veszek hozzá egy RTC modult.
A bekötést el tudná nekem valaki magyarázni lsz?
[Lilygo T5 EDP 4.7 hátlap]
[PCF8563]A terv az, hogy void setup-ban wifin NTP szerverről lekérem az időt, onnan meg az RTC modullal már tudok időzíteni.
-
válasz
lanszelot #19933 üzenetére
Van 6 darab GPIO, ebből alap esetben a 0-4-ig használhatod, az 5 a reset, amit egy flag segítségével átbillenthetsz normál módon használható GPIO pin-re viszont ezzel megszűnik a program feltöltés lehetősége (nem végleg, egy speciális programozó segítségével ilyenkor is lehet programozni, de 12V kell hozzá, szóval vedd úgy, hogy az 5-ös GPIO nincs
).
Mind az 5 pin alkalmas digitális ki és bemenetnek.
A 2,3,4 pin emellett analóg mérésekre alkalmas (ADC).
A 0,1 PWM jelet tud kiadni, vagyis például ledek analóg meghajtására alkalmasak (a belső timer-rel vannak összeköttetésben, ezen a két lábon van hardveres PWM, a többin csak szoftveres)
A 2 pin külső megszakításokat tud kezelni (INT0), ez például arra jó, hogy felébreszd deep sleep módból. Ezt szokták serial kommunikációra használni, RX lábnak.
PinChangeInt amúgy tudtommal van minden lábon, de az máshogy/kevésbé használható.
MOSI/MISO/SCLK ha jól tévedek az ISP programozáshoz kell, egyéb funkciója nincs.Jut eszembe: ha nem ISP-n keresztül, hanem az USB portba dugva, a rajta lévő bootloader segítségével cserélsz rajta programot, akkor a reset lábat tudod saját célra használni (azt hiszem csak bemenetként használható, kimenet nincs rajta), mert az USB feltöltéshez nincs szükség a reset lábra. Persze ha véletlenül törlődik a bootloader valami okból (ami nem is annyira ritka ennél a megoldásnál), akkor kuka
-
lanszelot
addikt
Hello,
Ezeknek a pinout-oknak van valahol valami leírása kezdőnek?
Mert nem igazán vágom mi micsoda
[kép]
Az 5V és a gnd -t értem, a többit nem.
Usb az otg, és ki lehet valahogy kapcsolni, hogy használható pin-ek legyenek. Ez még nem érdekel, mert az alapokat se értem.
Vin, PB0-PB5-ig.
Egyedül a resetet értem. Költök rá egy gombot gnd-vel és gondolom ugyanaz mint a nano reset gombja, csak itt nincs a board-on, ezért így oldották meg.
A többiről fogalmam sincs. És amit találok leírást azok nem kezdőknek való. -
válasz
lanszelot #19927 üzenetére
Hogy jött meg neked az AliExpress-ről két nap alatt?
Digispark telepítése
De ma délután több órányi kínlódás után arra jutottam, hogy érdemesebb lehet az attinycore-t telepíteni: [link]Amennyiben van bootloader a Digispark-on, akkor sem biztos, hogy elsőre fogod tudni csatlakoztatni a gépre usb-n keresztül. Én úgy jártam vele, hogy a laptopra csak úgy tudtam rádugni, ha kihúztam az egeret.
Kellett egy usb hub, akkor működött rendesen. (Ez azért van, mert nincs rajta hardveres usb támogatás, szoftveresen emulálja az usb kommunikációt).
Amennyiben van rajta bootloader, ugyanis én úgy kaptam Kínából az enyémet, hogy nem volt rajta, ISP-n keresztül kellett rá tenni, csak utána lehetett usb-n keresztül programozni. -
lanszelot
addikt
-
Janos250
őstag
Kíváncsivá tettetek ezzel az attiny85-el :-)
Srácok, ez drágább, mint az ARM bluepill!
https://vi.aliexpress.com/item/1005003169244854.html -
válasz
lanszelot #19923 üzenetére
Na, az derék. Azon igazából csak 3 lábat fogsz tudni használni saját célra, ha az USB-t is használni szeretnéd, mert összesen 5 GPIO van, amiből 2-t az USB foglal. Ha nem, akkor tudj róla, hogy azon a két lábon (asszen 4+5) van 1-1 zener dióda, és 1-1 felhúzó ellenállás, ami nem minden esetben, de néha tud váratlan dolgokat művelni.
-
válasz
Wolfram #19920 üzenetére
Ugye milyen meggyőző vagyok?
Nem, illetve infra ledekkel csináltam hasonlót, csak nem idő, hanem intenzitás alapú méréssel, meg sokat játszottam ultrahangos modullal.
Amúgy meg zenész vagyok és teremakusztikából írtam a szakdolgozatomat.
Nem írtad, hogy 2 vagy 3 dimenziós iránymeghatározást szeretnél? A leírt elrendezés alapján feltételezem, hogy 2 dimenzióst.
Ha én csinálnám, én XPS lapokból ragasztanék össze egy sarkai mentén, átlóban félbe vágott kockát (vagyis 3 oldalt, ami egymással 90°-os szögben találkozik), mondjuk 15cm-es oldalakkal, azt belülről beburkolnám valami puha, szálas anyaggal, például vattával, vagy vatelinnel (esetleg puhább szivaccsal vagy vastagabb filccel) mondjuk 2-5cm vastagon, és a sarokba tenném a mikrofont valami rugalmas felfüggesztéssel, például gumikra vagy kötelekre akasztva, mint a stúdió mikrofonoknál.
A mérésnél 10cm térbeli eltérés két csatorna közt ~3ms időbeli különbséget jelent. Kérdés az, hogy impulzus-szerű zaj vagy mondjuk folyamatos beszélgetés irányát szeretnéd meghatározni. Előbb esetben nyilván sokkal egyszerűbb a dolgod. Utóbbi esetben szerintem a nullátmenetek közti idő különbséget kell mérni, meg értelemszerűen a hangerőbeli különbséget is fel lehet használni.
Szerintem az 1m távolság sok, a kettő közt nagy lesz a holttér, de ez csak tipp. -
válasz
lanszelot #19918 üzenetére
Amennyiben próbálkozol vele, javaslom, hogy ha nem a Digispark USB-s kütyüt veszed, akkor is annak a library-jét töltsd le, mert tele van Attiny85 specifikus library-vel, amit pucér Attiny85-tel is tudsz majd használni (feltöltéskor figyelj majd, hogy többféle órajel is lesz a listában, és van olyan digi library, ami csak 16,5MHz órajel mellett működik, ami az USB kommunikáció miatt van megemelve, de alapból te majd nem ezt szeretnéd használni).
-
ReFleXx
addikt
Aki anno C-ben irta a kodot pl attiny-re, annak az arduinoban sokkal könnyebb dolga lesz, arrol nem beszelve hogy ezek a regi C kodok amiket pl AVR Studioban irt az ember azok siman lefordulnak a mostani Arduinoan is, de a mostani Arduino kodok mar nyilvan nem a libraryk nelkul.
Sajnos az Arduinoban megirt kodok nem a hatekonysagukrol es kicsi meretukrol hiresek, pl amig Arduinoban egy egyszeru Blink.ino leforditva 464 byte addig mindez egy regi, library nelkuli C-ben megirva es leforditva csupan 88 byte, azert az jelentos kulonbseg
Es meg ezen is lehetne faragni ha assemblyben lenne megirva eleve -
válasz
lanszelot #19916 üzenetére
Újra, persze. Rengeteg dologra használható (pl usb eszközt is lehet vele emulálni!), nekem a kedvencem.
Azért tudj róla, hogy sok mindent nem tud, amit a nagyobb testvérei, és ugyan integrálva van egy ideje az Arduino-ba, de csomó mindenhez vagy nincs library, vagy keresni kell hozzá külön erre megírt library-t.
-
lanszelot
addikt
Köszönöm szépen
igen az Attiny85 volt az.
Közben megtaláltam a srác angol nyelvű csatornáját
jó kis indiai akcentus, de követhető.
Újra írható a Attiny85?
Vagy csak 1szer írható?
Veszek párat, és megpróbálom lekövetni amit csinál.
Hátha sikerül rádobni a gáz érzékelőt -
válasz
lanszelot #19913 üzenetére
Jajjaj, itt valami nagy zavar van.
Vagy a szakkörön mondtak hülyeséget, vagy te értettél félre valamit.
IC: azintercityintegrated circuit-> integrált áramkör rövidítése. Minden szilíciumlapra integrált logikai vagy analóg áramkör IC, az 555-ös időzítőtől az Intel processzorig. Az is, ami a képen van, IC, de nem minden IC programozható, csak ami CPU-t valósít meg. Ebből aztán tényleg rengeteg fajta van, a processzor (asztali PC) ami önmagában nem tud működni, kell hozzá ram meg egyéb cuccok, a mikrokontroller, ami önmagában tartalmazza a működéséhez szükséges ramot és flash tárhelyet a program tárolására, egész a SoC-ig (System on Chip), ami már egy rakás perifériát is tartalmaz (wifi, LTE, GPS stb), ezekből építik a mobiltelefonokat.Aztán ugye a tokozás, ami esetleg megtévesztett téged, hogy lehet DIP, vagy QFP tokozás, de létezik TO-92 tokozású IC is, például hőmérő szenzor.
Amit te videón láthattál, az Attiny85, amit előszeretettel használnak kisebb projektekben, DIP-8 tokozású, klasszikus IC kinézetű, és semmi nem kell hozzá (pl külső órajel), csak táp kell neki és kész, igénytelen és robusztus, na meg olcsó és ahhoz képest sokat tud:
Ha megnézel egy eredeti Arduino UNO lapot, azon is DIP tokozású μC van (sokkal több lábbal):
Csak az újabb lapokra már inkább QFP chipet tesznek, mert olcsóbb és egyszerűbb a gyártása. -
dew28
aktív tag
válasz
lanszelot #19913 üzenetére
Mint írtam a szakkörön annyit mondtak: ic-t ugyanúgy kell programozni mint az arduinot, a képen lévő ic -hez hasonlót rajzolt fel a táblára.
Helyesen:
ic-t ugyanúgy programozni kell, mint az arduinothogy olyat is lássak, hogy ic.
no offense, de legkozelebb szerintem probalj meg eloszor egy google keresest, hogy legalabb legyen fogalmad rola, hogy mit szeretnel kerdezni.
hint: IC - Integrated Circuit - Integralt aramkor -
lanszelot
addikt
Nem, így értettem.
A kép: beirtam Google -ba "ic" első képet beraktam
Mint írtam a szakkörön annyit mondtak: ic-t ugyanúgy kell programozni mint az arduinot, a képen lévő ic -hez hasonlót rajzolt fel a táblára.
Többet nem tudok.
Amikor utána kerestem a videókon arduino-val ilyen alaku ic-ket programoznak.
Mivel indiai nyelven beszél egy szót se értek. És nem mutogatja el lépésenként.
Csak az arduino-t 8 vagy jóval több lábú ic -vel helyettesíti.
Bread bordba szúrja, össze kötögeti, és utana csak azt mutatja kész.
Tehát semmit.Fogalmam sincs milyen ic . Ezért kérdeztem itt , mert nem értek hozzá és azt se tudom hogy keressem
"From arduino to ic" ez nem segített.
Gondoltam van nyák lapom, és ic-vel össze dobnám a gáz érzékelőt, hogy olyat is lássak, hogy ic. Lehetne öröm bodottá. -
válasz
lanszelot #19910 üzenetére
Ez a képen fogalmam sincs, hogy micsoda, de talán sejtem, mire gondolsz. Az Arduino előtt pár évig foglalkoztam PIC mikrokontrollerrel (PicKit2, 16F877 μC), a hozzá való szoftvert és programozót mai napig használom attiny μC-k felprogramozására, illetve debugolásra. Na most, hasonlóan az Arduino-hoz, azt is C-ben kell programozni, igaz ahhoz saját fejlesztőkörnyezet volt, és közel sem ennyi library és példakód, de a logikája némileg hasonló (regiszterek használata, portok kezelése). De azt azért túlzás lenne állítani, hogy aki az egyiket tudja, az a másikat is, kb mintha azt mondanám, hogy aki tud biciklizni, az tud repülőt is vezetni.
Más kérdés, ha egy adott μC-t integrálnak az Arduino ökoszisztémába (STM32, ESP).
-
-
-
-
Tomika86
senior tag
válasz
vargalex #19899 üzenetére
Bocsánat, úgy gondoltam hogy a redirectel megmondom hova lépjen és amit a get kérésnél megadtam azt betölti, mint ahogyan az index oldalt is. És az ajax kódban nincs teendő.
Böngészőben néztem debugot ott jön a post esemény útána a 302 átirányítás, utána pedig a kiiratás kódja.
Köszönöm
Új hozzászólás Aktív témák
Hirdetés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- WLAN, WiFi, vezeték nélküli hálózat
- Kerti grill és bográcsozó házilag (BBQ, tervek, ötletek, receptek)
- Google Pixel topik
- BMW topik
- Formula-1
- Fejhallgató erősítő és DAC topik
- Moderátort keresek a fórumhoz!
- Star Wars rajongók
- Trollok komolyan
- További aktív témák...
- BESZÁMÍTÁS! MSI SUPRIM X RTX 4080 16GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! 4TB Samsung 870 EVO SATA SSD meghajtó garanciával hibátlan működéssel
- BESZÁMÍTÁS! Intel Core i7 8700K 6 mag 12 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ryzen 5 9600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Bomba ár! Fujitsu LifeBook E754 - i5-4GEN I 8GB I 256SSD I 15,6" HD I HDMI I W10 I Garancia!
- LG 55C3 - 55" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- Telefon szerviz helyben - Gyors javítás, akár 30 perc alatt!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest