Knop Arduino tutorial Arduino Tutorial (2 / 6 stap)

Stap 2: Bemonstering, Deglitching, en valt bestuurlijk gezien onder lezing


Glitches

Knoppen zijn als veel dingen: onvolmaakt. Zelfs wanneer ze een stevige mechanische sensatie geven, ze genereren een aantal trillingen wanneer de knop plaatst wijzigingen.

Deze oscillaties heten glitches of stuitert. Ze kunnen worden geëlimineerd door het toevoegen van een condensator (invoering van de enige vertraging), of software.

Filteren door middel van steekproeven

Uw toepassing van de Arduino is vaak ()-lus-gebaseerd, dat wil zeggen iets doet, dan slaapt een tijdje, herhaaldelijk. De knop staat bemonstering code kan uitzien:

 void loop() { // handle button boolean button_pressed = read_button(); // do other things do_stuff(button_pressed); // sleep a moment before next iteration delay(DELAY); } 

Dit betekent dat ten minste vertraging van milliseconden verstrijken tussen opeenvolgende knop proeverijen. Afhankelijk van de vertraging maakt dit ons ongevoelig voor glitches. Het reactievermogen is niet helemaal nauwkeurig, maar grotendeels voldoende: er zullen sommige jitter in de omvang van de vertraging. Het moet worden verzekerd dat de dingen die we tijdens elke lus doen een "kleine" en vergelijkbare voor elke iteratie duren.

De eerste foto van deze stap toont de glitches en de periodieke bemonstering (aangegeven in blauw).

Het lezen van de staat

De code hieronder toont hoe de periodieke bemonstering wordt gedaan. Wanneer de knop wordt gezien als niet ingedrukt, een stip wordt verzonden naar de seriële lijn; Wanneer de knop gedrukt gezien wordt, wordt een caret-teken verzonden.

De tweede foto van deze stap toont de uitgang voor seriële, voor een lange druk op gevolgd door twee korte persen.

Programmering

In de onderstaande code, merk dat ik heb gekozen naam voor een variabele (button_pressed) die een hoog niveau van abstractie (de knop staat), en niet de elektrische toestand (startknop, uitvoeren of niet, noch een elektrische waarde lezen op de pin), die zou verwarrend zijn vanwege het feit dat, als gevolg van de pull-up weerstand, de pin HIGH leest wanneer de knop wordt losgelaten.

Pro/Cons

Zeer eenvoudige implementatie. Geschikt voor continue controle (bijvoorbeeld pauze pedaal).

Ongeschikt voor incrementele besturingselement (bijvoorbeeld incrementele geluidsvolume)--die zal worden toegelicht in de volgende stap.

Code

––––––––––8<––––––––––

 #define BUTTON_PIN 2 // Button #define DELAY 20 // Delay per loop in ms void setup() { pinMode(BUTTON_PIN, INPUT); digitalWrite(BUTTON_PIN, HIGH); // pull-up Serial.begin(9600); } boolean handle_button() { int button_pressed = !digitalRead(BUTTON_PIN); // pin low -> pressed return button_pressed; } void loop() { // handle button boolean button_pressed = handle_button(); // do other things Serial.print(button_pressed ? "^" : "."); // add newline sometimes static int counter = 0; if ((++counter & 0x3f) == 0) Serial.println(); delay(DELAY); } 

––––––––––>8––––––––––

Gerelateerde Artikelen

LED te activeren met behulp van knop--Arduino voorbeeld Video

LED te activeren met behulp van knop--Arduino voorbeeld Video

de toont me het circuit op pagina 43 van aan de slag met Arduino, door Massimo Banzi monteren.In het volgende voorbeeld is een zeer goed uitgangspunt bij het gebruik van de Arduino systeem.  Het is de basis van mijn project Blinky visHier is hoe het
Ingebouwde Hackduino (Arduino) ultrasone parkeren gids

Ingebouwde Hackduino (Arduino) ultrasone parkeren gids

Dit is een gids voor het parkeren van hackduino die in een oude doos voor werk, past dus het kan ingebouwd worden in aan de muur in uw garage. Oorspronkelijk wilde ik met de Arduino en de ultrasone afstandssensor bepalen van een werkelijke verkeersli
Arduino gecontroleerd Marble doolhof

Arduino gecontroleerd Marble doolhof

dit is een eenvoudig project van Arduino om controle van een marmeren doolhof.  De Marble doolhof (u kunt het online) komt uit een project bij de TeleToyland, en de bouw instructies die op het dit Instructable.  Voor een recente show moest ik toestaa
MIDI controle Cubase met Arduino gebaseerd

MIDI controle Cubase met Arduino gebaseerd

Een vriend van mij wilde Cubase, zijn audio-opname-software, met een drukknop controle zodat hij kon stoppen en opnames op afstand opstarten zonder te hoeven overgaan tot de computer en type op het toetsenbord. U kunt mogelijk om dit te doen in ander
De opname met behulp van ultrasone sensor met arduino

De opname met behulp van ultrasone sensor met arduino

Ik heb in de IOT ruimte voor een flink aantal maanden en proberen om dingen te integreren met Arduino board, onlangs kwam ik ultrasone sensor, het is interessant. Dus ik dacht van het creëren van een klein project. Het doel van het project is het vas
Gebouw van de Android APP naar besturingselement Arduino Smart auto (製作Android APP控制Arduino 智慧車)

Gebouw van de Android APP naar besturingselement Arduino Smart auto (製作Android APP控制Arduino 智慧車)

Dit is een steekproefcode gemaakt van MIT APP inventor2. Om te tonen hoe verbinden Andruino via BT. U kunt het aanmaken om te voldoen aan welke functie die u wilt wijzigen. Bassically, het is echt gemakkelijk om te bouwen van een APP ter ondersteunin
Het gebruik van de flowsensor van de Water - Arduino tutorial Arduino Tutorial

Het gebruik van de flowsensor van de Water - Arduino tutorial Arduino Tutorial

In deze tutorial leert u hoe u één water flowsensor met een Arduino board.De flowsensor water bestaat uit een kunststof ventiel onderstuk, een water-rotor en de sensor van een hall-effect. Wanneer het water door de rotor stroomt, rotor rollen en de s
Het gebruik van de DHT-11 sensor-Arduino Tutorial

Het gebruik van de DHT-11 sensor-Arduino Tutorial

De DHT-11 is een digitale-uitgang relatieve vochtigheid en temperatuursensor. Het maakt gebruik van een capacitieve vochtigheid sensor en een thermistor voor het meten van de omringende lucht. Vergeleken met de DHT22, deze sensor is minder nauwkeurig
Het gebruik van de Adafruit Flora-bestuur - Arduino tutorial Arduino Tutorial

Het gebruik van de Adafruit Flora-bestuur - Arduino tutorial Arduino Tutorial

In deze tutorial leert u hoe u het bord Adafruit Flora en hoe kun je gemakkelijk programmeren met Codebender!FLORA is Adafruit van draagbare elektronica volledig-gekenmerkte platform. Het is een ronde, sewable, compatibel is met Arduino microcontroll
ESP8266 controle WS2812 Neopixel LEDs met behulp van de Arduino IDE - A Tutorial

ESP8266 controle WS2812 Neopixel LEDs met behulp van de Arduino IDE - A Tutorial

Hallo iedereen,Als u als me bent, hebt u zoekend rond het internet een goede tutorial over het gebruik van de ESP8266 met neopixel LEDs (AKA de WS2812 of WS2812b), geprogrammeerd via de Arduino IDE. Ik heb niet gevonden het allen in één plaats, in he
Het gebruik van de L298 Motor Driver Module - Arduino tutorial Arduino Tutorial

Het gebruik van de L298 Motor Driver Module - Arduino tutorial Arduino Tutorial

Dit dubbele bidirectionele motor stuurprogramma is gebaseerd op de zeer populaire L298 Dual H-Bridge Motor Driver IC. Deze module kan je gemakkelijk en onafhankelijk controle twee motoren van tot 2A in beide richtingen.Het is ideaal voor robotic toep
Arduino Tutorial: Krijgen reisde afstand met behulp van ADNS-9800 Sensor voor de muis van de Laser

Arduino Tutorial: Krijgen reisde afstand met behulp van ADNS-9800 Sensor voor de muis van de Laser

De sensor van de gaming ADNS-9800 Laser bestaat uit sensor en VCSEL in één chip-on-board (COB) pakket. ADNS-9800 biedt verbeterde functies zoals programmeerbare frame rate, programmeerbare resolutie, configureerbare slaap en wakker van de tijd versch
Arduino Tutorials (deel 3-17 Tutorial Pack)

Arduino Tutorials (deel 3-17 Tutorial Pack)

Dit is de Arduino Tutorial Pack deel 3.Het 1ste deel is hier beschikbaar:Het 2de deel hier:In tegenstelling tot andere tutorials hier geven niet ik elke achtergrond in theorie hoe het werkt. Het is hoe te bereiken - metingen uit veel van sensoren en,
Het gebruik van de bodem Hygrometer Module - Arduino tutorial Arduino Tutorial

Het gebruik van de bodem Hygrometer Module - Arduino tutorial Arduino Tutorial

In deze tutorial zullen we een bodem hygrometer module gebruiken voor het meten van bodemvocht van een pot.De module kan geven ons een digitaal signaal wanneer de bodem noodzaak drenken en deze uitgang kunnen worden aangepast door de potmeter. Of het