Force Feedback met LCD-scherm (1 / 4 stap)

Stap 1: LCD-scherm knoppen


Het LCD-scherm heeft zes knoppen, vijf die beschikbaar voor gebruik zijn. We gebruiken vier van hen voor ons project. De knoppen zijn omhoog, omlaag, naar links, rechts en selecteer Reset. De Reset-knop wordt de gehele Arduino hersteld. We zullen de vier directionele knoppen gebruiken. Omhoog en omlaag wordt ingesteld van de huidige limiet, links en rechts zal verplaatsen de actuator.

Het LCD-scherm zet alle vijf knoppen door middel van een digitaal naar Analoog Converter, zodat ze alleen oppakken van één pin. De andere kant aan dit is dat u wilt kalibreren van je rode knoppen.

De eenvoudigste manier om dit te doen is gebruik het Arduino AnalogReadSerial voorbeeld, en zie welke waarde krijg je voor elke druk op de knop. De meeste LCD-schermen gebruik pin A0 voor de knoppen. Zorg ervoor dat de om vertragingswaarde te wijzigen in AnalogReadSerial zodat u kunt eigenlijk zien wat de waarden worden weergegeven in de seriële monitor. Er zijn zes lezingen die u nodig hebt om te krijgen, de vijf lezingen van de knoppen, plus de lezing die je krijgt als geen toetsen worden ingedrukt.

Zodra u de lezingen van de knoppen hebt, kunt u hier de code om ervoor te zorgen dat ze allemaal werken. Een meer waarde die wordt gebruikt is de drempelwaarde. De drempel is om ervoor te zorgen dat wanneer u op de knop drukt, zal het eigenlijk registreren. Aangezien de knooppersen een DAC doorlopen, kunnen zij iets anders elke pers. Kunt u de drempelwaarde geven een +/-toevoeging zodat de knop indrukt binnen een bereik, eerder dan een exacte waarde kunt vallen. Meestal een kleine drempel zoals 2 of 3 is genoeg voor een één bord, maar als je wilt om een programma dat met vele verschillende LCD-panelen werken zal te maken (bijvoorbeeld, je maakt 10 exemplaren van uw project) dan u gebruik van een grotere drempel maken zou voor de kleine verschillen in de planken.

Extra opmerkingen hebben toegevoegd aan de code, zodat u wat alles is zien kunt voor. Nadat u hebt de code getest en alle waarden van uw knop gekregen, kunnen we gaan naar het volgende programma.

 //Sample using LiquidCrystal library #include <LiquidCrystal.h> /******************************************************* This program will test the LCD panel and the buttons Mark Bramwell, July 2010 ******************************************************** // select the pins used on the LCD panel LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //rs, enable, d4,d5,d6,d7 // define some values used by the panel and buttons int lcd_key = 0;//which button was pressed int adc_key_in = 0;//what was the input of the DAC #define btnRIGHT 0 #define btnUP 1 #define btnDOWN 2 #define btnLEFT 3 #define btnSELECT 4 #define btnNONE 5 //set button return values const int btnup = 130; const int btndown = 306; const int btnleft = 479; const int btnright = 0; const int select = 720; const int none = 127; //Put your button values here const int threshold = 2; //Put threshold value here int read_LCD_buttons() { adc_key_in = analogRead(A0); // read the value from the sensor if (adc_key_in > none - threshold && adc_key_in < none + threshold) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result if (adc_key_in > btnup - threshold && adc_key_in < btnup + threshold) return btnUP; if (adc_key_in > btndown - threshold && adc_key_in < btndown + threshold) return btnDOWN; if (adc_key_in > btnleft - threshold && adc_key_in < btnleft + threshold) return btnLEFT; if (adc_key_in > btnright - threshold && adc_key_in < btnright + threshold) return btnRIGHT; if (adc_key_in > select - threshold && adc_key_in < select + threshold) return btnSELECT; //if else statements could be used, but since each statement uses return, you don't lose speed for using all if's return btnNONE; // when all others fail, return this... }//end read_LCD_Buttons void setup() { lcd.begin(16, 2); // start the library lcd.setCursor(0,0); // Set cursor to upper left corner lcd.print("Push the buttons"); // print a simple message }//end setup void loop() { lcd.setCursor(9,1); // move cursor to second line "1" and 9 spaces over lcd.print(millis()/1000); // display seconds elapsed since power-up lcd.setCursor(0,1); // move to the begining of the second line lcd_key = read_LCD_buttons(); // read the buttons switch (lcd_key) // depending on which button was pushed, we perform an action { case btnRIGHT: { lcd.print("RIGHT "); break; } case btnLEFT: { lcd.print("LEFT "); break; } case btnUP: { lcd.print("UP "); break; } case btnDOWN: { lcd.print("DOWN "); break; } case btnSELECT: { lcd.print("SELECT"); break; } case btnNONE: { lcd.print("NONE "); break; } }//end switch }//end loop 

Gerelateerde Artikelen

Hoe maak je een Emoticon vest met LCD-scherm

Hoe maak je een Emoticon vest met LCD-scherm

Concept:Ik zou graag een jasje dat een kleine LCD-scherm heeft voor het maken van subteksten voor interpersoonlijke menselijke interactie. De gebruiker zou een beperkte "toetsenbord" met krachtsensors en knoppen onder zachte silicone toetsen geb
Ultrasone afstandsmeter met LCD-scherm van Arduino UNO

Ultrasone afstandsmeter met LCD-scherm van Arduino UNO

In deze tutorial gaan we zien een ander gebruik van de HC-SR04 ultrasone module. In deze module wordt vaak gebruikt op robots en speelgoedauto's te vinden van belemmeringen, maar het kan worden gebruikt voor het meten van afstanden ook.Afstanden geme
Raspberry Pi + Arduino Serial met LCD-scherm

Raspberry Pi + Arduino Serial met LCD-scherm

IntroDit is mijn Raspberry Pi info LCD, ik wilde proberen en krijgen de Arduino en de Raspberry Pi met elkaar praten via USB seriële en ik maakte dit kleine project.De Raspberry Pi een python-script gebruikt om de gegevens en stuurt het als tekenreek
Draagbare Arduino Uno temperatuur en luchtvochtigheid Sensor met LCD-scherm

Draagbare Arduino Uno temperatuur en luchtvochtigheid Sensor met LCD-scherm

Hey iedereen. Ik heb een heleboel geweldige ideeën uit instructables gekregen door de jaren heen. Aangezien dit mijn eerste ' ible, ik figuur ik iets wat ik zo goed gemaakt zou delen. Ik ben het invoeren van dit in het volledige Spectrum Laser wedstr
Arduino draagbare Weather Monitor, hoogtemeter, temperatuur, vochtigheid, met behulp van DHT11 en BMP85 met LCD-scherm met behulp van slechts 3 pins

Arduino draagbare Weather Monitor, hoogtemeter, temperatuur, vochtigheid, met behulp van DHT11 en BMP85 met LCD-scherm met behulp van slechts 3 pins

ik heb dit project, omdat ik vaak bergen zoals in de afbeelding beklimmen en ik moet weten de hoogte, de temperatuur en ook wijzigingen in de weersomstandigheden, soms in slechts enkele minuten het weer krijgen zeer slecht, met een zeer dichte mist,
Digitale oscilloscoop met LCD-scherm

Digitale oscilloscoop met LCD-scherm

Ik heb geprobeerd om eenvoudige en goedkope oscilloscoop met behulp van gemeenschappelijke delen van hedendaagse component retailers. Bij het maken, ik heb geprobeerd om het verminderen van het aantal delen, met behoud van het minimum nodig voor de f
Ultrasone sensor robot auto met gebruikte motorfiets accu met LCD-scherm

Ultrasone sensor robot auto met gebruikte motorfiets accu met LCD-scherm

Deze robot auto werkt met ultrasone sensor HC-SR04 en met gebruikte 12V motorfiets accu aangedreven.Stap 1: Lichaam van de robot-auto De robot-lichaam met behulp van triplex en een vlak stuk van hout te maken. Snijd de multiplex in een 9 inch door 6
Thermohygrometer met klok en LCD-scherm van Arduino UNO

Thermohygrometer met klok en LCD-scherm van Arduino UNO

Deze 7 stappen rijdt u door de "bouw" van een thermo-hygrometer met klok op Arduino UNO.Gegevens en de tijd, de vochtigheid en de temperatuur worden getoond op een LCD 16 x 2 weergeven. Als u een LCD-scherm hebt aangeschaft en wilt weten hoe goe
Arduino-Bit mappig op LCD-scherm met LOGO

Arduino-Bit mappig op LCD-scherm met LOGO

Dit project van Arduino wordt gebruikt voor weergave Arduino LOGO op LCD-scherm met behulp van de functie van de createChar van LiquidCrystal bibliotheek.In dit is het LOGO een teken van de aangepaste ontworpen door een binaire waarde te geven aan el
Netduino GPS met LCD Display

Netduino GPS met LCD Display

OverzichtIk vond een ongebruikte Netduino V1 kaartje in mijn vak delen dus wilde iets die kon ik draag het te vinden. Het was al aangesloten op een Nokia 5110 LCD display voor een eerder onvoltooide project. Het omhoog het aandrijven, vond ik dat bei
DS18B20 temperatuursonde met LCD

DS18B20 temperatuursonde met LCD

De DS18B20 komt in een temperatuur sonde formulier, dat waterdicht is. Ik had een echte harde tijd proberen om dit één werkend te krijgen en ik dacht dat ik zou delen hoe ik op het einde kreeg het werkend. Geniet van!Stap 1: onderdelenDe onderdelen d
Arduino HC-SR04 (met LCD)

Arduino HC-SR04 (met LCD)

HalloIn deze tutorial ga ik je laten zien hoe 1. De HC-SR04 verbinden met een arduino en afdrukken van de afstand tot de seriële monitor, 2. Verbind een LCD en de resultaten er in plaats daarvan afdrukken. De sensor werkt door pingen een ultrasone ge
Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

Hookup een LCD-scherm aan een Arduino in 6 seconden met 3, niet 6 pins

het toevoegen van een LCD-scherm aan de Arduino projecten kan echte waarde toevoegen de kosten doen dus kan echter aanzienlijk. Niet een financiële kosten - u kunt oprapen 16 (tekens) x 2 (rijen) LCD voor zo weinig zoals £3,50. De kosten is het telle
Magic 8 Ball Esp8266 en I2c LCD-scherm met

Magic 8 Ball Esp8266 en I2c LCD-scherm met

Ik dacht dat het zou een beetje leuk om te maken een Magic 8 Ball met behulp van een Arduino en een i2c LCD-scherm, dus hier zijn sommige instructies op hoe dit te doen.Stap 1: Spullen die je zal nodigVan een soort Arduino (ik gebruik een esp8266 maa