Force Feedback med LCD-skärm (1 / 4 steg)

Steg 1: LCD-skärm knappar



LCD-skärmen har sex knappar på den, fem som är tillgängliga för användning. Vi kommer att använda fyra av dem för vårt projekt. Knapparna är upp, ner, vänster, höger och välj Återställ. Knappen Återställ återställer hela Arduino. Vi använder de fyra riktningsknapparna. Upp och ner ställer den nuvarande gränsen, vänster och höger flyttar manöverdonet.

LCD-skärmen sätter alla fem knappar genom en Digital till Analog omvandlare så att de bara tar upp en PIN-kod. Baksidan till detta är att du måste kalibrera dina knappar.

Det enklaste sättet att göra detta är att använda Arduino AnalogReadSerial exempel, och se vilket värde du får för varje knapptryckning. De flesta LCD-skärmar använder pin A0 för knapparna. Ska du ändra fördröjningen värdet i AnalogReadSerial så att du kan faktiskt se vilka värden visas i den seriella monitorn. Det finns sex behandlingar som du behöver få, de fem avläsningarna av knappar, plus den behandlingen som du får när någon knapp trycks.

När du har avläsningarna av knappar, kan du använda koden här att se till att de alla arbetar. En mer värde som används är tröskeln. Tröskeln är att se till att när du trycker på knappen, det faktiskt kommer att registrera. Eftersom knapptryckningar går igenom en DAC, de kan vara lite olika varje tryck. Du använda tröskelvärdet för att ge en +/-tillägg så att den knapptryckningar kan falla inom ett intervall, snarare än en exakt värde. En liten tröskel som 2 eller 3 är vanligtvis tillräckligt för en enda styrelse, men om du vill göra ett program som kommer att arbeta med många olika LCD (till exempel, du gör 10 exemplar av projektet) då du skulle använda en större tröskel för att redovisa de små skillnaderna i styrelser.

Extra kommentarer har lagts till koden så att du kan se vad allt är till för. När du har testat koden och fått alla din knapp värden, kan vi gå vidare till nästa program.

Prov med LiquidCrystal biblioteket

#include < LiquidCrystal.h >

/*******************************************************

Detta program kommer att testa LCD-panelen och knapparna
Mark Bramwell, juli 2010

********************************************************

Välj stift används på LCD-panelen
LiquidCrystal lcd (8, 9, 4, 5, 6, 7); rs, aktivera, d4, d5, d6 och d7

definiera vissa värden används av panel och knappar
int lcd_key = 0; //which knappen trycktes
int adc_key_in = 0; //what var tillförsel av DAC

#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5 //set knappen returnera värden

CONST int btnup = 130;
CONST int btndown = 306;
CONST int btnleft = 479;
CONST int btnright = 0;
CONST int Välj = 720;
CONST int ingen = 127; Sätta din knapp värden här
CONST int tröskel = 2; Lägg tröskelvärde här

int read_LCD_buttons()
{
adc_key_in = analogRead(A0); läsa värdet från sensorn
om (adc_key_in > ingen - tröskeln & & adc_key_in < ingen + tröskel) återvända btnNONE; Vi gör detta alternativet 1. hastighet skäl eftersom det är mest sannolikt resultatet
om (adc_key_in > btnup - tröskeln & & adc_key_in < btnup + tröskel) återvända btnUP;
om (adc_key_in > btndown - tröskeln & & adc_key_in < btndown + tröskel) återvända btnDOWN;
om (adc_key_in > btnleft - tröskeln & & adc_key_in < btnleft + tröskel) återvända btnLEFT;
om (adc_key_in > btnright - tröskeln & & adc_key_in < btnright + tröskel) återvända btnRIGHT;
om (adc_key_in > Välj - tröskeln & & adc_key_in < Välj + tröskel) återvända btnSELECT;

om else-satser kan användas, men eftersom varje sats använder avkastningen, förlorar du inte hastighet för att använda alla om

återvända btnNONE; När alla andra misslyckas, tillbaka detta...
} //end read_LCD_Buttons

void setup()
{
LCD.BEGIN (16, 2); Starta biblioteket
lcd.setCursor(0,0); Ställa markören till övre vänstra hörnet
LCD.Print ("Push knappar"); skriva ut ett enkelt budskap
} //end setup

void loop()
{
lcd.setCursor(9,1); flytta markören till andra raden "1" och 9 utrymmen över
LCD.Print(Millis()/1000); Display sekunder som förflutit sedan uppstart

lcd.setCursor(0,1); flytta till början av den andra raden
lcd_key = read_LCD_buttons(); Läs knapparna

växel (lcd_key) / / beroende på vilken knapp var sköt, vi utför en åtgärd
{
fall btnRIGHT:
{
LCD.Print ("höger");
bryta;
}
fall btnLEFT:
{
LCD.Print ("vänster");
bryta;
}
fall btnUP:
{
LCD.Print ("UP");
bryta;
}
fall btnDOWN:
{
LCD.Print ("ned");
bryta;
}
fall btnSELECT:
{
LCD.Print("Select");
bryta;
}
fall btnNONE:
{
LCD.Print ("NONE");
bryta;
}
} //end switch

} //end loop

Se Steg
Relaterade Ämnen

Arduino Joystick bakbord med LCD-utgång

vill kunna styra ett par servon med en tumme-joystick? Men vet inte var du ska börja?Jag har servon, men jag kan sätta dig på rätt spår om hur man gör saker när du flyttar med styrspak.Detta instructable kommer att lära dig att mata riktning med styr...

Självbalanserande Robot med LCD-

Den modifierade versionen av min mpu6050 balansera robot stabilare med LCD och exempel på ansluta 2 i2c på samma stiftvideo 1video 2Steg 1: Steg 1: ◾L298N dubbla motor förare breakout ombord◾L298N dubbla motor förare breakout ombord12 V BATTARY9 V BA...

DS18B20 temperatur sond med LCD-

DS18B20 kommer i en temperatur sond form, som är vattentät. Jag hade riktigt svårt att försöka få detta en arbetar och jag tänkte jag skulle dela hur jag till slut fik den arbetande. Njut!Steg 1: delarDe delar du behöver för detta projekt:Arduino Meg...

Netduino GPS med LCD-skärm

ÖversiktJag hittade ett oanvänt Netduino V1-kort i min delar låda, så ville hitta något jag kunde ägna den till. Det var redan ansluten till en Nokia 5110 LCD-skärm för ett tidigare oavslutade projekt. Driver den upp, hittade jag båda arbetande böter...

Hur man gör en uttryckssymbol jacka med LCD-skärm

Konceptet:Jag skulle vilja göra en jacka som har en liten LCD skärm att skapa undertexter för interpersonell mänsklig interaktion. Användaren skulle använda en begränsad "tangentbord" med kraft sensorer och knappar under mjuk silikon nycklar för...

Arduino HC-SR04 (med LCD)

HejI denna tutorial jag ska visa dig hur man 1. Ansluta HC-SR04 till en arduino och skriva ut avståndet till seriell övervaka, 2. Anslut en LCD-skärm och skriva ut resultaten där istället. Sensorn fungerar genom att pinga ut ett ultraljud som vi inte...

Med PCF8574 ryggsäckar med LCD-skärmar och Arduino

IntroduktionMed LCD-moduler med din Arduino är populära, men mängden ledningar kräver tid och tålamod att tråd det upp rätt - och även använder mycket av digital utgångsstift. Thats varför vi älskar dessa seriell ryggsäck moduler - de är monterade på...

Ultrasonic linjal med LCD och Arduino

du behöverEn LCD-skärmEn Arduino Uno (jag har en Ethernet-shield på min, det gör inte någon sak i detta projekt, men det är en smärta att ta på och av)En Ultrasonic Sensormodul20 - 30 hoppare ledningarDetta är en ganska enkel projekt som jag kom med,...

Mini Arduino Multi funktion styrenhet med LCD-skärm

detta Instructable bygger på mini Arduino miljö monitor och mini Arduino EEGEN monitor Instructables.Det kan du styra upp till 4 reläer med tid, temperatur och/eller ljus, ditt sinne, eller vilken sensor du vill använda.Exemplen är prototyper, jag gå...

Arduino Ohm mätare med LCD-

Detta Instructable visar dig hur man gör en Digital Ohm mätare med Arduino.This Ohm mätare är mycket exakt... och helt DIY.Steg 1: Samla allt material.1) Arduino UNO (eller någon annan Arduino)2) bakbord3) 16 x 2 LCD uppvisning4) hoppare ledningar5)...

Atmega16/32 utveckling styrelsen med LCD

detta instructable visar, hur du gör din egen utveckling styrelsen för Atmega16 eller Atmega32 processorer. Internet är fullt av hemgjorda utveckling styrelser, men jag tror att det finns utrymme kvar för en annan. Denna styrelse har varit mycket anv...

Temp & Fuktsensor med LCD Disp & lysdiod

I detta instructable, jag har använt DHT11 temperatur & luftfuktighet sensor och Arduino UNO för att visa de aktuella temperatur & luftfuktighet avläsningarna till en 16 x 2 LCD-Display. Parallellt med, jag har också skapat en 3-LED setup som ange...

Ultrasonic avståndsmätare med LCD-display på Arduino UNO

I denna tutorial kommer vi att se en annan användning av modulen HC-SR04 ultraljud. Denna modul används ofta på robotar och leksaksbilar för att hitta hinder men det kan användas för att mäta avstånd också.Avstånd som mäts av HC-SR04 visas på vår äls...

Digitalt oscilloskop med LCD-skärm

Jag försökte göra enkel och billig oscilloskop använda gemensamma delar från dagens komponent återförsäljare. När du skapar, jag försökte minska antalet delar, samtidigt som minst nödvändiga för funktionen av ett oscilloskop - för olika inställningar...

Networked LCD ryggsäck med LCD Smartie

tecken LCD skärmar bläddra information är en populär fall mod. De är oftast kontrolleras via en parallellport, serieport ryggsäckeller USB ryggsäck (mer). Detta Instructable visar våra öppen källkod ethernet nätverk LCD ryggsäck.LCD kontrollprogram s...

Komma igång med LCD och mikroprocessorer

i detta Instructable, ta reda på hur man styr LCD med en ATmega8 och Bascom.Du behöver:-Skärbräda-Tråd-ATmega8-Programmerare-Bascom AVR (det finns även en demoversion gratis)-10 k motstånd-100 k motstånd-10 k varierande resistor-7805 spänningsregulat...

LED T-Shirt med LCD-skärm och Bluetooth

Hemgjord LED T-Shirt med 324 adresserbara WS2812B LED. Kontrolleras med Arduino kopplat pro micro till LCD-pekskärm och Bluetooth till Android telefon app. allt gjorts i huset (kretskort, skjorta kod, telefon app, skjorta layout, LED Ribbon strängar)...

Raspberry Pi + Arduino Serial med LCD-skärm

IntroDetta är min Raspberry Pi info LCD, jag ville försöka få Arduino och Raspberry Pi prata med varandra via USB följetong och jag gjorde denna lilla projekt.Raspberry Pi använder ett python-skript för att hämta data och skickar det sedan som en str...

Arduino tryckgivare (FSR) med LCD-skärm

Detta instructable (förhoppningsvis) kommer att visa hur man konstruerar en Arduino-baserad trycksensor som visar det uppmätta trycket på en liten LCD-skärm. Jag in element, både hårdvara och mjukvara, från olika källor (jag kommer att ge referenser...