- HiFi műszaki szemmel - sztereó hangrendszerek
- Vezetékes FÜLhallgatók
- GoPro Topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Hivatalosan is reagált a Core CPU-k stabilitási gondjáira az Intel
- Milyen billentyűzetet vegyek?
- Amlogic S905, S912 processzoros készülékek
- AMD vs. INTEL vs. NVIDIA
- Azonnali alaplapos kérdések órája
- Milyen monitort vegyek?
Hirdetés
-
Visszavonta az Intel és a Qualcomm Huawei-hez kiadott exportlicencét az USA
it A jelentések szerint az USA hosszú idő után döntött, és visszavonta a Huawei kapcsán kiadott exportlicencet az Inteltől és a Qualcommtól. Ez mindegyik félnek nagy probléma lehet.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
MG5 menetpróba
ma Elektromos, kombi és most már elég jó áron van, de nem egy friss konstrukció. Vajon megéri?
-
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
-
bacus
őstag
miért kell két nyomógomb? egy nem elég? ha mér akkor ne mérjen, ha nem mér akkor mérjen. ez egy gombnyomás.
az lcd kijelzőt érdemes úgy választani, hogy legyen rajta i2c busz és akkor 2 vezeték elég, csak magadnak könnyited meg az életed.
ja, most olvasom, hogy soha nem forrasztottál, nos ez a kisebbik baj, mert azt gyorsan megtanulod, lehet az elején nem lesz szép, de működni fog, de ezt ha tartósan meg akarod tartani, akkor a próba panel a minimum, a breadboard, egyrészt drága, másrészt hogy néz ki, hogy a kanócok ott mennek és beleakadsz leesik, ki is húzódik?
Mondom a minimum, hogy veszel próbanyákot, azon szépen beforrasztgatod az alkatrészeket, majd összehuzalozod.[ Szerkesztve ]
Kössünk egyezséget, megegyezős egyezséget... https://www.paypal.me/engiman/30
-
gyapo11
őstag
Nem feltétlenül kell megszakítással számolni, a loop egy ledvillogtatással 100 ezerszer fut le másodpercenként, a te programod nyilván hosszabb lesz, de ha csak 10 ezerszer fordul, akkor is lesz ideje számolni az impulzusokat.
Nyomógombot (mikrokapcsolót) simán kezelem bármelyik lábon, még kondi se kell. Az első lenyomott állapot érzékelése után 30 ms múlva kell leolvasni, ha még mindig benyomott, akkor jó, addigra az összes prell elmúlik. Ezután kell figyelni a fölengedést, nekem 40 ms volt kb. a leggyorsabb fölengedésem, de inkább 100 ms-re kell számítani. Fölengedésnél a prellel nem kell törődni, amint 1-be ugrik a bemenet az föl van engedve.
Ez az egyszeri megnyomás beolvasására igaz, ha nyomvatartott állapot is van, akkor kicsit más, én órát programoztam egy gombbal, és volt 500 ms-nél kisebb, 500-1500 közötti, és ennél hosszabb idő, ezek mind más funkciót töltöttek be.
Mivel számolnod kell az impulzusokat, a delay() függvényt felejtsd el, vannak timer libraryk delay nélkül, vagy akár programozhatod magad is, de a loop pörögjön.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
nyunyu
félisten
elapsedTime 64 bites egesz tipusu, azert inicializalja az 1000-es osztot ugyanilyen adattipusnak.
Ha siman /1000 lenne odairva, akkor alapertelmezetten 32 bites int tipusu lenne az oszto, amit osztas elott at kell alakitania a forditonak 64 bitesre, mivel az aritmetikai muveletek csak azonos tipusu parametereken vegezhetoek el.
Legalabbis a fejlett programnyelvek altalaban automatikusan szoktak castolni a rovidebb valtozot a hosszabb adattipusara, de elegansabb eleve ugyanolyan adattipust hasznalni mindenhol.
Ugy rovidebb es valamivel gyorsabb is lesz a leforditott kod.Regebbi progamnyelvek hibauzenetet dobtak forditaskor, ha nem egyezett a ket adattipus.
Legalabbis a C meg elegge haklis volt erre.[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
gyapo11
őstag
Egy változóban őrzöd, hogy most éppen melyik állapot az aktuális, az időmérés, vagy a nem időmérés.
A gombnyomásnál és a fölengedésnél lesznek prellek, ezeket kezelni kell. Lehet külső áramkörrel, ami garantáltan prellmentesen vált egyik állapotból a másikba, vagy software-ből, mondjuk 50 ms-et várni, de szeritnem elég 30 is.
Amikor érzékeled a nyomógomb lenyomását, akkor a millist leteszed, és addig vársz, amíg 30-cal nem lesz több, ha még mindig be van nyomva, akkor úgy veszed, hogy megtörtént a lenyomás. Ekkor elvégzed az ehhez tartozó műveleteket, beírod az állapotváltozóba, hogy 1 (mérés), és figyeled, hogy mikor enged föl. Amikor észreveszed, hogy föl van engedve, akkor ugyanaz a menet, mint a lenyomásnál. Vársz 30 ms-et, megnézed, hogy még mindig föl van-e engedve, ha igen elvégzed a műveleteket és beírod a változóba a 0-át (nincs mérés). És a delay-t elfelejted.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
tibi-d
tag
Sziasztok!
Minden programomban én úgy oldom meg a nyomógombok prellmentesítését, hogy a menüvezérlést egy önálló szubrutinba hívom meg. Ezt a szubrutint egy (Timer1.attachInterrupt) hívja meg, ami nálam 0.1s alatt fut le 1X.
Ekkor figyelem a nyomógomb változását. Ha változott, beállítok egy változót (PinOld) amit csak akkor írok vissza, ha már végrehajtottam a feladatot, amit a nyomógomb vezérelt, és felengedtem a gombot. Így biztos, hogy csak 1X fogja végrehajtani. Ez az algoritmus bármennyi gomb vezérléséhez használható, ha kell prioritás is felállítható a gombok között. ( és csak 1X kell megírni, utána bármelyik projektben alkalmazható.) -
gyapo11
őstag
Ez beolvassa a nyomógomb állapotát, a buttonState változó értéke vagy 0 vagy 1 lesz.
Az #1031-be linkelt példa jó, ha nem értesz benne valamit akkor kérdezz.
Illetve még javaslom a folyamatábrát, azal könnyű megérteni a működést programnyelvtől függetlenül, és utána át kell fordítani az arduino nyelvére, ebben tudok segíteni.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
tibi-d
tag
Szia!
Itt a kód, amit az Arduino.cc "learning" oldaláról ollóztam.State change detection (edge detection)
Often, you don't need to know the state of a digital input all the time,
but you just need to know when the input changes from one state to another.
For example, you want to know when a button goes from OFF to ON. This is called
state change detection, or edge detection.This example shows how to detect when a button or button changes from off to on
and on to off.The circuit:
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground
* LED attached from pin 13 to ground (or use the built-in LED on
most Arduino boards)created 27 Sep 2005
modified 30 Aug 2011
by Tom IgoeThis example code is in the public domain.
http://arduino.cc/en/Tutorial/ButtonStateChange
*/
// this constant won't change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the buttonvoid setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button
// wend from off to on:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
}
else {
// if the current state is LOW then the button
// wend from on to off:
Serial.println("off");
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;// turns on the LED every four button pushes by
// checking the modulo of the button push counter.
// the modulo function gives you the remainder of
// the division of two numbers:
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}}
Természetesen úgy alakítod, ahogy neked megfelel.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen