- Megjelent az iOS 17.4, minden idők egyik legfontosabb iPhone-frissítése
- DIGI Mobil
- iPhone topik
- Vodafone mobilszolgáltatások
- Telekom mobilszolgáltatások
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Eleglide C1 - a középérték
- Milyen okostelefont vegyek?
- Android szakmai topik
- Android alkalmazások - szoftver kibeszélő topik
Hirdetés
-
Kapnak egy rakás reklámot a Roblox játékosai
it Videohirdetésekre készülhetnek ezentúl a virtuális világokban a Roblox játékosai.
-
VR játék lesz az Batman: Arkham Shadow (Meta Quest 3)
gp Egyelőre csak egy teaser trailert kaptunk a teljes leleplezésre a Summer Game Festen kerül sor.
-
Spyra: akkus, nagynyomású, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Mobilarena
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
-
dew28
aktív tag
válasz DrojDtroll #17052 üzenetére
akkor nekem van egy felesleges. irj ram, ha aktualis.
[ Szerkesztve ]
-
vegyszer
addikt
Szervusztok
A minap M5Stack stamp nézelődés közben leltem két érdekes képet:
Az lenne a kérdésem, hogy ez a célszerszám milyen névre hallgathat? Ha jól sejtem forrasztás nélküli vezeték bekötést is el lehet vele, általa követni."Újságírás az, amit a hatalom nem akar nyomtatásban látni. Minden más csak propaganda." George Orwell
-
tibi-d
tag
Sziasztok!
Adott egy NodeMCU32s kocka. Szeretnék hozzá csatlakoztatni 3.2-es Nextion kijelzőt, 24C256-ot, 6db analóg bemenetet, 2db digit. kimenetet, és 4db PWM kimenetet.
Melyiket, melyik lábra célszerű kötni? Sok bemenet sokféle funkcióra is használható, de biztos van egy célszerű kiosztása is.
Tanácsokat előre is köszönöm. -
Brain75
senior tag
Sziasztok.
Adott egy arduino és azon egy hall sensor modul.
Ez ad ki analóg és digitális (on-Off) jelet is.
Hogy tudom ezt a digitális (on-OFF) jelet úgy kivezetni mintha egy switch lenne ?
Tehát az kellene nekem hogy valamelyik 2 lábon kimenetben kapcsoló jelet adjon addig amíg a hall szenzor digitális jelet ad.Valaki tud segíteni a megvalósításban, vagy abban hogy hol nézzrk utána ? Vagy esetleg kell még valami ahhot hogy ezt meg tudjam csinálni ? Mondjuk egy relé ? Elég szűkös ahely és költség érzékeny a téma, ezért minél kevesebb alkatrészből kellene megépíteni.
Sajnos a reed relé nem jó megoldás mert azt bármilyen mágneses jel akár a kábelen be tudja húzni.Köszönöm
/LOGITECH Kormány, Játékvezérlő, Hangfal, Egér, Billentyűzet, Dell, Toshiba, Fujitsu, Acer notebookok és minden egyéb elektronikai termék szakszerű, gyors JAVÍTÁSÁT vállalom/
-
nagyúr
válasz Brain75 #17056 üzenetére
Adott egy arduino és azon egy hall sensor modul.
Ha adott, akkor mondj róla több információt!
Az ESP32 a tokon belül tartalmaz hall senzort, amit a saját céljaidra tudsz használni, ez így méretben elég pici.
Azt se ártana tudni, hogy mit szeretnél kapcsolni.
[ Szerkesztve ]
-
Janos250
őstag
válasz tibi-d #17055 üzenetére
Sok jelentősége nincs. ha a default pineket használod, akkor talán 1-2 ns-sel gyorsabb.
Ha nem azt használod, akkor meg teljesen mindegy, ugyanis van egy hardware mátrix - olyasmi mint a fóliás billentyűzetekben - azon keresztül megy. A mátrix egyik oldalához vannak kötve a perifáriák, a másikhoz meg a pinek, és amikor összerendeled őket, akkor egy adott sort összekötsz egy adott oszloppal.
Az analogokat a defaultból válaszd. Az UART1-nek is van default, de az nem jó, mert azt a memória kezeléshez használja, a lapok többségén ki sincs vezetve.
Én az I2C-t, és az SPI-t (VSPI) az alapértelmezetthez szoktam kötni, de csak megszokásból. Itt elég jól fel vannak tüntetve:
https://i2.wp.com/randomnerdtutorials.com/wp-content/uploads/2018/08/ESP32-DOIT-DEVKIT-V1-Board-Pinout-36-GPIOs-updated.jpg
Meg itt is:
https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2018/08/esp32-pinout-chip-ESP-WROOM-32.pngVagy ez:
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
#define EXTERNAL_NUM_INTERRUPTS 16
#define NUM_DIGITAL_PINS 40
#define NUM_ANALOG_INPUTS 16
#define analogInputToDigitalPin(p) (((p)<20)?(esp32_adc2gpio[(p)]):-1)
#define digitalPinToInterrupt(p) (((p)<40)?(p):-1)
#define digitalPinHasPWM(p) (p < 34)
static const uint8_t LED_BUILTIN = 2;
#define BUILTIN_LED LED_BUILTIN // backward compatibility
#define LED_BUILTIN LED_BUILTIN
static const uint8_t TX = 1;
static const uint8_t RX = 3;
static const uint8_t SDA = 21;
static const uint8_t SCL = 22;
static const uint8_t SS = 5;
static const uint8_t MOSI = 23;
static const uint8_t MISO = 19;
static const uint8_t SCK = 18;
static const uint8_t A0 = 36;
static const uint8_t A3 = 39;
static const uint8_t A4 = 32;
static const uint8_t A5 = 33;
static const uint8_t A6 = 34;
static const uint8_t A7 = 35;
static const uint8_t A10 = 4;
static const uint8_t A11 = 0;
static const uint8_t A12 = 2;
static const uint8_t A13 = 15;
static const uint8_t A14 = 13;
static const uint8_t A15 = 12;
static const uint8_t A16 = 14;
static const uint8_t A17 = 27;
static const uint8_t A18 = 25;
static const uint8_t A19 = 26;
static const uint8_t T0 = 4;
static const uint8_t T1 = 0;
static const uint8_t T2 = 2;
static const uint8_t T3 = 15;
static const uint8_t T4 = 13;
static const uint8_t T5 = 12;
static const uint8_t T6 = 14;
static const uint8_t T7 = 27;
static const uint8_t T8 = 33;
static const uint8_t T9 = 32;
static const uint8_t DAC1 = 25;
static const uint8_t DAC2 = 26;
// PWM Driver pins for PWM Driver board
static const uint8_t PWM0 = 12;
static const uint8_t PWM1 = 13;
static const uint8_t PWM2 = 14;
static const uint8_t PWM3 = 15;
static const uint8_t PWM4 = 16;
static const uint8_t PWM5 = 17;
static const uint8_t PWM6 = 18;
static const uint8_t PWM7 = 19;
#endif /* Pins_Arduino_h */Apropó!
Szerintetek ennek a sornak mi az értelme:#define LED_BUILTIN LED_BUILTIN
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
-
tothferenc
senior tag
sziasztok. Egy kis programozói segítségre lenne szükségem. Egy Ds18b20 szenzorral, egy arduino nanoval és egy oled kijelzővel reszeltem egy egyszerű hőmérőt. Viszont nem jövök rá, mi kell a sketch-be, hogy csak 1 tizedesjegyig írja a hőfokot. eléggé az elején vagyok az arduinoba.
bedobom ide a kódot:
//Libraries available at: https://github.com/adafruit/Adafruit_SSD1306
// https://github.com/adafruit/Adafruit-GFX-Library
//https://github.com/milesburton/Arduino-Temperature-Control-Library
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DallasTemperature.h>
const int SensorDataPin = 2;
OneWire oneWire(SensorDataPin);
DallasTemperature sensors(&oneWire);
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire, -1);
void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
dispTemp();
display.clearDisplay();
}
void dispTemp(void) { // function to read and display temperature
sensors.requestTemperatures(); // Send the command to DS18B20 to get temperatures
float temperatureDegC = sensors.getTempCByIndex(0);
displaytemp(temperatureDegC,'C'); // call to function void displaytemp(float temp, char C_F) giving temperature in Deg C and character C
}
void displaytemp(float temp, char C_F) // function to display temp, takes temperature and character C or F from calling function void dispTemp(void)
{
display.drawRect(1, 1, display.width()-1, display.height()-1, WHITE); // draws the outer rectangular boundary on the screen
//display.print("Temperature: "); display.print(temperature_Celsius); display.println(" *C");
display.setTextSize(1,2);
display.setCursor(32,6);
display.print("Homerseklet");
display.setTextColor(WHITE); // i have white OLED display, you can use other colors in case you have multicolored display
display.setTextSize(1); // i have used large font to display temperature, it can be varied as per your taste
display.setCursor(106,30);
display.print("o"); // this prints the "o" symbol to show Degree
display.setTextSize(2);
display.setCursor(112,37);
display.print(C_F); // this takes character from function call either C or F for centigrade of farenheit
if(temp >=100 || temp < 0){ //i have reduced font size if temp goes in 3 digits or is -ve, keeps text in center of display , it can be varied as per your taste
display.setTextSize(3);
display.setCursor(25,30);
}
else if(temp < 10 && temp >= 0){ //some adjustments to keep text in center of display , it can be varied as per your taste
display.setTextSize(3);
display.setCursor(25,30);
}
else
{
display.setTextSize(3); //i have used large font to display temperature, it can be varied as per your taste
display.setCursor(10,30);
}
display.print(temp); // finally prints the temperature on your OLED display
display.display();
}
i5 2500k + 8GB RAM + Gigabyte R9 270X 4GB ~ iPhone 13 mini - MediaPad M3
-
weiss
addikt
válasz tothferenc #17062 üzenetére
Próba:
display.print(temp, 1);
Formázd kódként legközelebb pls.
I did nothing, the pavement was his enemy!
-
Tomika86
senior tag
Sziasztok!
Lehet hülye kérdés lesz. Ha ugyanazt az átlagoló függvényt fel akarom használni különböző helyekre, akkor nem lesz jó, mert az összes jel bent lesz a tömbben.
Ezt, hogy lehet megoldani? Erre vannak az osztályok, példányosítás?
Köszönöm!
-
Tomika86
senior tag
válasz Janos250 #17067 üzenetére
Bővítetted amióta elküldted?
Van például 6darab analóg bemeneten beolvasott érték, mindegyiket mozgóátlaggal "szűrném". Ezt egy darab paraméteres visszatérési értékű függvénnyel nem tudom megcsinálni, ha jól gondolom, mert a bemenetek "összemosódnak".
Mind a 6bemenethez külön függvény kellene.Ezt oldja meg az osztály?
hogy akkor így lesz:
adc0.avg(be1)
adc1.avg(be2)
.
.
adc5.avg(be6)
így egy osztállyal megoldható mind a 6?
Köszi! -
Tankblock
aktív tag
válasz Tomika86 #17069 üzenetére
template <typename T, typename Total, size_t N>
class Moving_Average
{
public:
Moving_Average& operator()(T sample)
{
total_ += sample;
if (num_samples_ < N)
samples_[num_samples_++] = sample;
else
{
T& oldest = samples_[num_samples_++ % N];
total_ -= oldest;
oldest = sample;
}
return *this;
}
operator double() const { return total_ / std::min(num_samples_, N); }
private:
T samples_[N];
size_t num_samples_{0};
Total total_{0};
};Moving_Average<double, double, 3> ma;
for (int i = 0; i < 10; ++i)
std::cout << (i * i) << ':' << ma(i * i) << ' ';
std::cout << '\n';Igen megoldható.... [link] Google is segít.
Inkább a cppreferenct kellene linkelni : [link][ Szerkesztve ]
Release the Beast....
-
Tankblock
aktív tag
Szimpla c++ template megvalósítása a mozgó átlagnak, és némi fv operátor ....
Semmi extra, egy N elemű tömböt hoz létre és azt addig tölti fel adatokkal amíg nem éri el a megadott méretet, utána meg szépen kicseréli a legrégebbit a legújabbra, és számolja közben a mozgó átlagot.Lehet float, double, bármi ami szimpatikus....
C++ én így szeretlek.....Release the Beast....
-
Tankblock
aktív tag
Nem a programozó írja meg ugyanazt a fv, structúrát, classt, többféle típusra, hanem fordítási időben hozza létre a template alapján, ahogy a deklaráció(k) vannak. megelőzhető egy csomó copy-paste error ha használná az ember int, float,.... típusokkal ugyanazt....
A legtöbb standard library is így van megírva.Operator overload is standard c++,
Általában igaz, hogy illik tudni mi történik, mert jöhetnek a meglepetések...Release the Beast....
-
nagyúr
válasz Tankblock #17077 üzenetére
Általában igaz, hogy illik tudni mi történik, mert jöhetnek a meglepetések...
20 év alatt ez az első alkalom, hogy találkozom ezzel a formulával, és nem érzem úgy, hogy bármiről is lemaradtam volna Hozzátartozik, hogy nem múlik rajta a megélhetésem, tehát könnyen vagyok nagyvonalú. De már csak az alaposságom és a kíváncsiságom miatt is utána fogok olvasni.
Minél többet tudok a C++-ról, annál jobban szeretem az assembly-t.
[ Szerkesztve ]
-
Tankblock
aktív tag
Assemebly szép és hatékony nyelv, hátránya az hogy nem annyira könnyen portolható és tud nagyon architechtúra függő lenni.
Személy szerint csak ritkán és csak pici uContollereken mint Attiny ahol 1k a flash és esetleg valamit meg kell valósítani amit HW nem tud.Release the Beast....
-
nagyúr
válasz Tankblock #17079 üzenetére
Vettem egy marék Attiny12-t (Attiny85 helyett küldték Kínából, hogy véletlenül, vagy szándékosan, azt sosem tudom meg), nincs benne ram, ezért nem lehet C-ben programozni. Mérgemben megtanultam assembly-ban programozni, hogy ne vesszenek kárba (régebben 6510 assembly-al volt már dolgom). Nem túl hatékony vele dolgozni, de nagyon büszke vagyok, mikor sikerül valamit megírni rá. Épp egy ubtech robothoz csinálok belőle külső szenzort.
[ Szerkesztve ]
-
nagyúr
válasz Tankblock #17082 üzenetére
Szoftveres UART-ot írtam, és a 32 regiszterrel az RX buffert is meg tudtam oldani viszonylag egyszerűen. 1,2MHz órajel mellett piszkosul ki kell számolni minden utasítás ciklusidejét, hogy kijöjjön a 115200b/s sebesség. Az oszcillátor kalibrációja nélkül nem is sikerült.
-
nagyúr
Úgy tudom volt valamilyen próbálkozás RAM nélküli C compiler létrehozására, de sajnos nem találtam sehol letölthető formában, szerintem félbe hagyták a fejlesztést. Nyilván nem volt értelme túl sok energiát fektetni bele, se változók, se szubrutinok használatára nem lenne lehetőség, 3word-nyi hardware stack van a CPU-ban, 3-nál mélyebb rekurzió fölött gyakorlatilag lábon lövi magát a program.
Lehetne a programmemóriát adat tárolására is használni, de mivel összesen 1kB áll rendelkezésre, ez sem lenne túl előremutató. Az UART modulom assembly-ban írva is jelenleg több mint 800 Byte, miközben magát a programot, ami használni fogja, még el sem kezdtem írni.[ Szerkesztve ]
-
Tankblock
aktív tag
-
nagyúr
válasz Tankblock #17086 üzenetére
Ez érdekes. Úgy emlékszem, hogy én is azzal próbálkoztam először, csak nem volt benne Attiny12 támogatás Most az AVR stúdió 4 van fent, mert ezzel sikerült csak működő kódot fordítani. Létezik, hogy ennyire béna lettem volna?
Megtennéd, hogy írsz és fordítasz rá valami egyszerű kódot, mondjuk ledvillogtatást, esetleg ha van lehetőség, UART-on kiíratni vmi szöveget, és elküldöd nekem a hex fájlt? Most már igazán kíváncsi vagyok.
-
Janos46
tag
Sziasztok.
Segítséget szeretnék kérni. ESP8266 amit ha a COM portra dugok eként látom: Silicon Labs CP210x USB to UART Bridge (COM5), azonban a routerben nem (MAC és IP cím). A driver fennt van (CP210x_6.7.4 ) Mi lehet az oka?Artillery, lelkes újonc vagyok, tanulni akarok!
-
Janos46
tag
#17089weiss
#17090Aryes
https://lastminuteengineers.com/esp8266-dht11-dht22-web-server-tutorial/
Majd 1 éve foglalkoztam utoljára ezzel (pauza volt), és eddig ment minden (többfajta progi is) , igaz nem nem ezzel típusú ESP-vel (CP210x). Most ellenőrzésnél rengeteg hibát ír ki.Artillery, lelkes újonc vagyok, tanulni akarok!
-
Tomika86
senior tag
Sziasztok!
Egy könyvtárban az hol van megírva, hogy figyelmeztetést adjon, hogy nem arduino eszközre való? header fájlban nincs. Amikor fordítom le a programot, akkor ír ki egy figyelmeztetést az arudino ide.
Köszönöm!
Új hozzászólás Aktív témák
- Megjelent az iOS 17.4, minden idők egyik legfontosabb iPhone-frissítése
- gban: Ingyen kellene, de tegnapra
- Autós topik
- Óra topik
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- DIGI Mobil
- CASIO órák kedvelők topicja!
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...