- Milyen billentyűzetet vegyek?
- Milyen nyomtatót vegyek?
- Milyen monitort vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Intel Core i3 / i5 / i7 / i9 10xxx "Comet Lake" és i3 / i5 / i7 / i9 11xxx "Rocket Lake" (LGA1200)
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- Nem indul és mi a baja a gépemnek topik
- Milyen TV-t vegyek?
- Fejhallgató erősítő és DAC topik
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
Hirdetés
-
Computex 2024: várakozásokat felülmúló számok
ph Szinte megduplázta az előző évi látogatószámot a kiállítás, mutatva, hogy van momentum az iparágban.
-
Spyra: nagynyomású, akkus, 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! :)
-
Lőn világosság: megérkezett új fénymérőnk
ma A márka és a metódus maradt, gyorsan pótoltuk a Honor 200 Pro méréseit.
-
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
-
Pubszon
veterán
válasz gyapo11 #3342 üzenetére
Az mit takar, hogy OC?
Felépítésre ez lenne a legjobb, de sajnos csak 12V-os.ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Pubszon
veterán
válasz gyapo11 #3346 üzenetére
A 12V maximumot lehet a motor miatt írják, vagy hogy a LED-ek tönkre mehetnek a nagyob feszültségtől.
Maga az IC biztos bírja a 24V-ot, de a komplett modul lehet hogy nem. Valami ilyesmi lehet.Szerintem marad akkor a L298N, nem esztétikus, de az legalább bírja.
ASRock X79 Extreme6, i7 4930K, 32GB DDR3, GTX 1080 G1, Corsair RM750x...
-
Teasüti
nagyúr
válasz gyapo11 #3336 üzenetére
Villogni kezd?
Az animáció?
Ezért lehet érdemes grafikus futószalag elvén megírni, ahol minden egyes loop() ciklus egy képkockát generál.
A parancsokat megszakítással veszi és polling-gal rakja össze a pufferből. Annyi, hogy amíg a LED frissítése zajlik, arra a rövid időre kikapcsolom a megszakítást. (BAAAAZDMEG lehet ezért veszik el egy-egy vezérlőbájtom a BT átvitel során?? Há Móóónika! Megyek dolgom van! )
Így nálam bármilyen fps mellett működőképes marad minden egyéb funkció.
És persze a LED-ek sem villognak, hisz a PWM vezérlő sample&hold elven működik, legfeljebb az animáció akadozik, ha nagyon beesik az fps, de itt csak 120 ledről (meg pár paletta, ami mi is pontosan?) beszélünk és az animáció erőforrásigénye se óriási. Egy 8 bites Atmel328p vígan elviszi a tapasztalataim alapján több száz fps-el.(#3334) printpro
Azt hiszem tudok segíteni neked, viszont határozatlan időre tudnám csak vállalni a feladatot. Hetekig tartana ráérő szabadidőmben. Nem számolva a posta idejével, amíg megérkeznek a kellékek hozzá ebay-ről.[ Szerkesztve ]
-
Daszkalosz19
aktív tag
válasz gyapo11 #3359 üzenetére
Szia!
Jelenleg így néz ki a dolog. kiírja,hogy off,de a relé állapotváltozásra nem reagál#include "DHT.h"
#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define Relay 4
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
byte e1[8] = {B10,B100,B1110,B10001,B11111,B10000,B1110}; // Ez az é betű
byte o1[8] = {B100,B100,B0,B1110,B10001,B10001,B1110}; // Ez a hosszú ó betű
byte o2[8] = {B1010,B0,B1110,B10001,B10001,B10001,B1110}; // Ez a rövid ö betű
byte o3[8] = {B1010,B1010,B0,B1110,B10001,B10001,B1110}; // Ez a hosszú ő betű
byte a1[8] = {B10,B100,B1110,B1,B1111,B10001,B1111}; // Ez az á betű
byte u2[8] = {B1010,B0,B0,B10001,B10001,B10011,B1101}; // Ez a rövid ü betű
byte u3[8] = {B1010,B1010,B0,B10001,B10001,B10011,B1101}; // Ez a hosszú ű betű
byte i1[8] = {B10,B100,B0,B1110,B100,B100,B1110}; // Ez a hosszú í betű
int maxHum = 80;
int maxTemp = 33;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(Relay, OUTPUT);
Serial.begin(9600);
Wire.begin();
dht.begin();
lcd.begin(20, 4);
lcd.backlight();
{
lcd.setCursor(2, 0);
lcd.print("Kelteto vezerles");
lcd.setCursor(8, 0);
lcd.write(4);
lcd.setCursor(13, 0);
lcd.write(1);
lcd.setCursor(16, 0);
lcd.write(1);
lcd.setCursor(3, 1);
lcd.print(" By:Daszkalosz ");
lcd.setCursor(4, 2);
lcd.println(" 2016.07.26 ");
delay(3000);
lcd.clear();
}
lcd.createChar(1, e1); // Ez az é betű
lcd.createChar(2, a1); // Ez az á betű
lcd.createChar(3, o1); // Ez a hosszú ó betű
lcd.createChar(4, o3); // Ez a hosszú ő betű
lcd.createChar(6, u2); // Ez a rövid ü betű
lcd.createChar(7, u3); // Ez a hosszú ű betű
lcd.createChar(0, i1); // Ez a hosszú í betű
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
lcd.println("Szenzor ERROR!");
return;
}
if(h > maxHum || t > maxTemp) {
digitalWrite(4, HIGH);
} else {
digitalWrite(4, LOW);
}
// Hőmérséklet.
lcd.setCursor(0, 0);
lcd.print("Homerseklet: ");
lcd.setCursor(1, 0); //Kurzor 3. sor 2. karakternél
lcd.write(4); //Átírjuk az o betüt ő-re
lcd.setCursor(3, 0); //Kurzor 3. sor 4-es karakternél
lcd.write(1); //Átírjuk az e betüt é-re
lcd.setCursor(6, 0); //Kurzor 3. sor 7-es karakternél
lcd.write(1); //Átírjuk az e betüt é-re
lcd.setCursor(13, 0); //Kurzor 3. sor 14-es karakternél
lcd.print(t); //Hőmérséklet érték kiírása
lcd.print((char)223); //Fokjel előhívása memoriából
lcd.print("C");
// Páratartalom.
lcd.setCursor(0, 1);
lcd.print("Paratartalom: ");
lcd.setCursor(1, 1);
lcd.write(2); //Átírjuk az a betüt á-re
lcd.setCursor(14, 1); // A páratartalom kijelzés a 14.sortól kezdődik
lcd.print(h);
lcd.print("%");
delay(200);
//Vízmelegítő.
lcd.setCursor(0, 2);
lcd.print("Vizmelegito :");
lcd.setCursor(1 ,2);
lcd.write(0);
lcd.setCursor(8 ,2);
lcd.write(0);
lcd.setCursor(10 ,2);
lcd.write(4);
if(Relay == HIGH)
{
lcd.setCursor(13,2);
lcd.print(" ON ");
}
else
{
lcd.setCursor(13,2);
lcd.print(" OFF ");
}
} -
Teasüti
nagyúr
válasz gyapo11 #3354 üzenetére
Ez egy remekül összeszedett eszmefuttatás!
Amúgy mi az oka annak, h elvesznek bájtok a soros porton?
Én is küzdök ezzel a problémával és most már csak széttárom a karjaim.
De csak serial monitorból érkező adatok vesznek el, a küldött az hibátlan és a program feltöltés se hibázik. -
zka67
őstag
válasz gyapo11 #3363 üzenetére
Szia, bocs, hogy beleszólok, de
Amíg nem tudjuk pontosan, hogy bármely pillanatban mit csinál a processzor
az elég komoly probléma, elég gyenge programozóra vall.
Nem a processzor programoz minket, hanem mi programozzuk a processzort, az pedig végre kell hogy hajtsa az utasításainkat. Nem mást, hanem azt, amit leírunk neki. Ha tudjuk, hogy mit írunk le, akkor tudni fogjuk azt is, hogy melyik pillanatban mit csinál a processzor. Szerintem...
-
Janos250
őstag
válasz gyapo11 #3366 üzenetére
"én pl. még nem láttam azt a kódot, ami akkor fog lefutni, amikor ezt a sort hajtja végre és küldi ki a soros portra a byte-okat"
Tessék:
size_t HardwareSerial::write(uint8_t c)
{
_written = true;
// If the buffer and the data register is empty, just write the byte
// to the data register and be done. This shortcut helps
// significantly improve the effective datarate at high (>
// 500kbit/s) bitrates, where interrupt overhead becomes a slowdown.
if (_tx_buffer_head == _tx_buffer_tail && bit_is_set(*_ucsra, UDRE0)) {
*_udr = c;
sbi(*_ucsra, TXC0);
return 1;
}
tx_buffer_index_t i = (_tx_buffer_head + 1) % SERIAL_TX_BUFFER_SIZE;// If the output buffer is full, there's nothing for it other than to
// wait for the interrupt handler to empty it a bit
while (i == _tx_buffer_tail) {
if (bit_is_clear(SREG, SREG_I)) {
// Interrupts are disabled, so we'll have to poll the data
// register empty flag ourselves. If it is set, pretend an
// interrupt has happened and call the handler to free up
// space for us.
if(bit_is_set(*_ucsra, UDRE0))
_tx_udr_empty_irq();
} else {
// nop, the interrupt handler will free up space for us
}
}_tx_buffer[_tx_buffer_head] = c;
_tx_buffer_head = i;sbi(*_ucsrb, UDRIE0);
return 1;
}Nem gondolom, hogy az Arduinot használók között túl sokan vannak, akik az assembly kódot akarják bogarászni. Aki mégis, az meg azt is tudja, hogyan kell a fordítót paraméterezni, hogy legyen egy közbülső assembly kódod is.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz gyapo11 #3373 üzenetére
Ebben is egyetértünk. De vannak akik szeretnek legózni, ahelyett, hogy CNC gépen kifaragnák maguknak az egyes elemeket. Pedig az biztosan jobban passzolna az elképzeléseikhez.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Teasüti
nagyúr
válasz gyapo11 #3386 üzenetére
Gombnyomásra én ezt alkottam:
//button press
if (digitalRead(8) == HIGH && !button) {
button = true;
Serial.println("Pressed");
}
else if (digitalRead(8) == LOW) button = false;Loop-ban fut természetesen és fogalmam sem volt eddig ilyen pergés effektről.
Sosem aktivál egynél többször; ezért merem ajánlani a kollégának.
Felengedésre ír vmit az else if-be és voilá!
Nem volt róla szó milyen gombról van szó.
Talán akkor a pergésmentesítéssel jobban jár, ami a linket van.Vagy lehet olyat, hogy egy lábra két megszakítást kapcsolok?
LOW és RISING?[ Szerkesztve ]
-
-
tvamos
nagyúr
válasz gyapo11 #3404 üzenetére
Ne is mond a mechanikai designt... vagy 200 tactile switchet mertem ki egy projecthez (kulonbozo gyartoktaol, a legjobb Japantol, a legegyszerubb "nevtelen" kinaiig,) oscilloscoppal. (Sajnos nem tudok meresi eredmenyeket megosztani, mert ceg.) Iszonyat ami ott tortenik, foleg, ha nem hatarozottan nyomod / engeded el. Persze, mit tud tenni a gyarto, ha meg 10 Ft-ot sem adsz egy darabert? Ott sporol, ahol csak tud... Nem vesznek az emberek higannyal nedvesitett erintkezoju nyomo gombokat.
Itt nagyon jo az oscilloscope snapshot. Mintha a sajat scope-om latnam...."Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
tvamos
nagyúr
válasz gyapo11 #3408 üzenetére
Oke, de akkor mar nem jo a sima, egyszeru tactile switch.
A fizika mar csak ilyen, prellezik a kapcsolo. Szoftverbol meg kell irni a filtert, oszt kesz! Akinek olyan gyorsan kell az eredmenyt, az vesz egy cortex-et, oszt tol ra egy fft-t. (Bocs, mindenre ezt szoktam a programozo kollegaimnak mondani, ha ertetlenkednek, miert ugy mukodik a hw, ahogy.)[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
kovimre
tag
válasz gyapo11 #3450 üzenetére
Egy időzítőt kellene készíteni. Egyik állásban számoljon vissza 10 perctől, majd váltosn átt a másikra, ahol számoljon vissza 60 másodpercről (közben tartson bekapcsolva egy relét). Ezután kezdje az elsővel. Továbbá legyen lehetőség mindkét idő állítására (nyomógombokkal). Kb. ennyi.
-
tvamos
nagyúr
válasz gyapo11 #3485 üzenetére
Arduino frameworkkel nem probaltam meg a sleep modokat, de a wdt siman mehet.
Level Interrupts
When the arduino is in SLEEP_MODE_PWR_DOWN the only way to wake it is with either a watchdog timer interrupt, a level interrupt on pins 2 or 3, or a Pin Change interrupt (see ATmega328 datasheet Table 10-1, including note 3, on pg. 38).[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
Gergosz2
veterán
válasz gyapo11 #3487 üzenetére
Simán jó lehet a komparátoros megoldás is.
Az ADC kikapcsolva és SLEEP_MODE_PWR_DOWN-ot használva már bőven uA-es tartományban alszik az Arduinod, csak arra kell figyelni, hogy LOW interruptra tudod csak felébreszteni (Due-t ,Zerot mással is lehet ebben.)
Gyakorlatilag ennyi az egész:
#include <avr/sleep.h>
void sleepNow() // here we put the arduino to sleep
{
byte adcsra = ADCSRA;
wait(100);
ADCSRA = 0;
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
attachInterrupt(0, wake_up_pin, LOW);
sleep_mode();
sleep_disable();
ADCSRA = adcsra;
detachInterrupt(0);
}Loop-ban meg meghívod a sleepNow()-t. Ha felébredt akkor onnan folytatja ahol elaludt. Pl.
Serial.println(" Megyek aludni..");
sleepNow() ; // elmegy aludni, majd felkelted
Serial.println(" Most keltem fel."); // majd innen folytatja[ Szerkesztve ]
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
-
tvamos
nagyúr
válasz gyapo11 #3622 üzenetére
br@yterminal, putty, miniterm... ez utobbi python, nem exe, ha ez szamit valamit.
(#3623) MasterMark válasza gyapo11 (#3622) üzenetére
Linux alatt nem kell letolteni semmit.Ja win alatt volt regen hyperterminal, most nem tudom, hogy mi, hogy van.
[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
Zoja™
őstag
válasz gyapo11 #3703 üzenetére
Nézd el nekem, a mikrovezérlőkkel én is még csak most ismerkedem, de az alábbit elmagyaráznád nekem?
Mivel szobában lesz, ahol a hőfok nem változik túl sokat, elég pontosra be lehet lőni a sima millis függvénnyel is az órát, megméred egy nap mennyit tér el, és ennyivel korrigálod naponta az időt. Azt ne feledd, hogy 50 naponta a millis átcsordul.
Mit és milyen mértékben befolyásol ez a jelenség?
-
kmisi99
addikt
válasz gyapo11 #3703 üzenetére
Ez a hőmérsékletes tényező érdekes, és hasznos infó.
Akár arduino pro mini is jó lenne mondjuk?
A merevlemezhez kapcsolódóan én azon az elven indulok ki, hogy mikor lecsatlakoztatunk USB-n számítógépről valamit, olyankor ugye megszakítja szoftveresen az adatkapcsolatot, majd mi fizikailag szüntetjük meg az áram ellátását.
Na most itt annyi lesz, hogy én az adatkapcsolatot is fizikailag fogom megszakítani. Szóval ilyen elven gondolkodva nemhiszem, hogy megviselné. Viszont valóban gondolkodtam a merevlemez eladásán majd 128GB os pendrive vásárlásán, az már 0-24 ben be lehetne dugva, de én két dolgot imádok, takarékoskodni, és "feltalálni" megalkotni valami egyedit.
-
Janos250
őstag
válasz gyapo11 #3724 üzenetére
"Ha egy autóakku feszültségét akarod mérni, akkor már megint ellenállások kellenek"
Ki tudja, hol lehet - lehetőleg az aranynál olcsóbb áron - elég pontos műszerellenállásokat kapni?
Én internetről rendeltem párat, de olyan 800 Ft körül volt darabja. (0.1 %-os)Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
MasterMark
titán
-
Zoja™
őstag
válasz gyapo11 #3814 üzenetére
Szerintem elbeszéltek egymás mellet. Ha jól vettem ki, Ő arra kíváncsi, hogy a led szalag meghajtásához hova kösse a +12V-ot. A kapcsolási rajz pedig csak arra ad következtetést, hogy mekkora a max feszültség, amit az arduino elbír(na). De tapasztalatom szerint 12V-nál többet nem érdemes neki adni, mert meghülyül.
Lehet rossz betáppal próbálkoztam, de nálam 15V-nál már behülyült, nem volt képes lefuttatni a programot.
-
skul0
aktív tag
válasz gyapo11 #3888 üzenetére
A gyengeáramot szűrni alatt azt érted, hogy az erősítő bázisa és az Arduino pin-je közé beiktatni a szűrőt? Illetve ha jól gondolom, és a fűrész a négyszögjelből a szűrő által kialakított görbét jelenti akkor minél laposabb annál jobb.
@Janos250:
A frekvencia nem, hogy állandó? Illetve adott pin-en állandó. Csak a kitöltési tényező változik, a négyszögjel felfutó éle mindig azonos időközönként ismétlődik, csak a jel hossza változik. Vagy a szervóval keverem?Forrás
Eszerint két frekivel lehet számolni, 490 és 980Hz pin-től függően.@aryes:
Vótmá a tipp.[ Szerkesztve ]
Új hozzászólás Aktív témák
- Forza sorozat (Horizon/Motorsport)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- E-roller topik
- Elektromos autók - motorok
- Milyen billentyűzetet vegyek?
- Milyen légkondit a lakásba?
- Milyen nyomtatót vegyek?
- Gyúrósok ide!
- Milyen monitort vegyek?
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- ASUS TUF Gaming A15 FA507XU- LP4050W Gray ELADÓ!!!!!! (GARANCIÁLIS 36-HÓNAP)
- Újszerű Spigen Liquid Air Folio Tok, iPad Pro 12.9, Fekete
- Huion Kamvas Digitalizáló Tábla / Rajztábla / Külső Monitor okos tollal /// ÚJ // Számla + Garancia
- ESR 360 Mágneses Tok és Billentyűzet Ipad Pro /// Air // Bontatlan // Számla + Garancia
- Synology DS223 (2GB) /// Teljesen Új // Számlával és 2 év Garanciával