-
GAMEPOD.hu
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
-
weiss
addikt
Sziasztok, volt már dolga valakinek ilyennel?
I did nothing, the pavement was his enemy!
-
weiss
addikt
Van egy ilyen boardom:
Istennek nem tudom rávenni, hogy kommunikáljon az Arduinoval. SIM kártyával fel tudom hívni, szóval nem döglött, csak mintha nem működnének a soros portjai. Van valakinek valami tippje?
I did nothing, the pavement was his enemy!
-
weiss
addikt
Így hirtelen, próba, cseresznye:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7 // Hőmérő a pin7-en
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int led1 = 6;
int ledState = LOW; // kimeneti pin aktuális állapota
int ledBLINK = 8;
char engedely = HIGH;
unsigned long lastTemp;
float temperature;
int was_low = 1;
int was_high = 1;
void setup()
{
pinMode(led1, OUTPUT);
digitalWrite(led1, ledState);
pinMode(ledBLINK, OUTPUT);
Serial.begin(9600);
sensors.begin();
sensors.setResolution(11);
}
void loop()
{
if (millis() > lastTemp + 1000 ){
sensors.requestTemperatures();
temperature = sensors.getTempCByIndex(0);
Serial.println(temperature);
if (temperature < (24-0.5 )) {
ledState = HIGH;
was_low = 1;
if(was_high){
was_high = 0;
blink5();
}
}
else if (temperature > (24+0.5 )) {
ledState = LOW;
was_high = 1;
if(was_low){
was_low = 0;
blink5();
}
}
lastTemp = millis();
}
digitalWrite(led1, ledState);
}
void blink5(){
for(int i=0;i<5;i++){
digitalWrite(ledBLINK,HIGH);
delay(500);
digitalWrite(ledBLINK,LOW);
delay(500);
}
}[ Szerkesztve ]
I did nothing, the pavement was his enemy!
-
weiss
addikt
Aki használ BME280-at, az normális, hogy az értékek zajosak? Szobában nyugalomban van a szenzor, és a tizedes érték ugrál. Próbáltam adafruitos és sparkfunos libbel is, oversample/filter a maximumon van, bár mikor ezeket állítgattam, akkor sem láttam érdemi változást.
I did nothing, the pavement was his enemy!
-
weiss
addikt
válasz Honkydoo #5987 üzenetére
Teljesen mindegy mennyire gyors, nem csúsznak egymásra, mert először feltöltöd a tömböt, aztán ha tele van, kilövöd a megszakítást, és utána szöszöl az FFT-vel, és elölről. Szerintem ez így teljesen jó. Miért nem próbálod ki egyébként?
I did nothing, the pavement was his enemy!
-
weiss
addikt
válasz BTminishop #6496 üzenetére
Ráállítasz egy megszakítást a pinre, és a megszakító rutinban kapcsolgatsz egy változót. A loopban meg változó függvényében kapcsolgatod a ledet.
I did nothing, the pavement was his enemy!
-
weiss
addikt
Most mobilról vagyok, szóval nem, de ha nagyon kell, valamit előkeresek holnap. A koncepció az, hogy beállítasz egy timert a megszakításkezelő függvényben, és amíg nem jár le, addig nem veszed figyelembe a megszakítást. Ez gyakorlatilag 0 késleltetés.
I did nothing, the pavement was his enemy!
-
weiss
addikt
válasz vargalex #7403 üzenetére
Ha jól látom az a töltő tud belső ellenállást is mérni, nem emlékszel mennyi volt? Én is ilyen bontott cellákat használok zseblámpákban, de arra gyanakszom, hogy túl nagy. Mármint tudom, hogy nem minden aksi más, csak kíváncsi vagyok, hogy egy nem éppen megkímélt noticella mennyire használódik el.
I did nothing, the pavement was his enemy!
-
weiss
addikt
Találkoztatok olyan ESP32 boarddal, amelyiken van USB /a könnyebb programozhatóság végett/, de le is lehet kapcsolni mindent az SoC-n kívül, ha valami low power cuccok akarok csinálni?
I did nothing, the pavement was his enemy!
-
weiss
addikt
Az ESP32-nek nem kellene mindig ugyanannyi idő alatt végrehajtani ugyanazt a kódot, ha nincs megszakítás?
I did nothing, the pavement was his enemy!
-
weiss
addikt
válasz Tankblock #9190 üzenetére
#include "xtensa/core-macros.h"
#include "sound.h"
#define DAC_PIN 25
void setup()
{
Serial.begin(115200);
pinMode(DAC_PIN, OUTPUT);
}
void loop()
{
int start = micros();
play_music();
int stop = micros();
Serial.println(stop - start);
delay(1000);
Serial.println(".");
}
void play_music()
{
uint32_t wait_start = 0;
uint32_t num_tick_to_wait = F_CPU / SAMPLE_RATE;
for(int i = 0; i < NUM_SOUND_SAMPLES; i++)
{
wait_start = xthal_get_ccount();
dacWrite(DAC_PIN, sound_samples[i] + 128);
while((xthal_get_ccount() - wait_start) < (num_tick_to_wait - 86))
{
NOP();
}
}
}A
micros()
helyett próbáltamxthal_get_ccount()
-ot használni, de az sem volt konstans. Próbáltam kikommentelni adacWrite
-ot is, de az sem segített. Már csak arra tudok gondolni, hogy az Arduino fordít valami dinamikus cuccot oda.I did nothing, the pavement was his enemy!
-
-
weiss
addikt
Ha jól értem, a mikrovezérlőről szeretnél meghajtani egy klasszikus relét? Ez nem jó ötlet, mert a lap nem tud annyi áramot adni, hogy meghajtsa a relét. Egy solid state relét lehetne esetleg használni. Tápnak pedig én egy kapacitív előtétet használnék, de azt pontosan kell méretezni.
I did nothing, the pavement was his enemy!
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- Magga: PLEX: multimédia az egész lakásban
- Házimozi belépő szinten
- PlayStation 5
- LG 34GS95QE-B: OLED paneles, ívelt gamer monitor
- Teljes verziós, ingyenes mobil játékok és alkalmazások
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Eredeti játékok OFF topik
- Politika
- Fotók, videók mobillal
- További aktív témák...
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5
- Bomba ár! HP EliteBook 830 G6 - i7-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Dell Latitude 5580 - i5-G6 I 8-16GB I 256 SSD I 15,6" FHD I HDMI I CAM I W10 I Garancia