Raadi Koodka

1602 LCD Keypad Shield: Koodka Asaasiga ah

1602 LCD Keypad Shield: Koodka Asaasiga ah

Cashigarkani, waxaan ku baran doonaa sida loo barnaamijiyo loona isticmaalo 1602 LCD Keypad Shield oo leh Arduino. Shilkan wuxuu leeyahay shaashad 16-xaraf oo 2-sadarro ah iyo keypad u oggolaanaya hawlo kala duwan oo gelin ah. Marka aad dhammayso hagahan, waxaad awoodi doontaa inaad soo bandhigtid farriimaha oo aad ka jawaabto riixista furaha si wax ku ool ah.

Diidmada waxay noqon doontaa abuurista barnaamij fudud oo ogaada riixista furaha oo soo bandhiga farriimaha u dhigma ee LCD-ga. Waxaad la socon kartaa fiidiyowga si aad u aragto muujin muuqaal ah (fiidiyowga 03:00).

Qalabka La Sharaxay

Qaybta koowaad ee dhismahan waa 1602 LCD Keypad Shield. Shilkan wuxuu si toos ah ugu xidhmaa Arduino board-ka wuxuuna bixiyaa shaashad iyo keypad labadaba si isticmaaluhu u macaamilo. LCD-ga wuxuu muujin karaa farriimo qoraal ah, halka keypad-ku u oggolaado isticmaalayaasha inay doortaan ikhtiyaaro iyada oo loo marayo furaha kala duwan.

Keypad-ku wuxuu u shaqeeyaa isticmaalka gelinta analog-ga, kaas oo Arduino uu akhriyo si uu u go'aamiyo furaha la riixay. Furaha kastaa wuxuu leeyahay iska caabin gaar ah, taas oo u oggolaanaysa microcontroller-ka inuu aqoonsado furaha ku salaysan qiimaha analog-ga laga helo sensor-ka.

Faahfaahinta Xogta

Soo saarahaGuud
Nambarka qaybta1602 LCD Keypad Shield
Logic/IO voltage5 V
Korantada sahayda5 V
Korantada soo saarista (kanal kasta)2 mA
Korantada ugu sarreysa (kanal kasta)20 mA
Hagaha soo noqnoqoshada PWMN/A
Heerarka gelinta logic-ga0.3 Vcc ilaa 0.7 Vcc
Hoos u dhaca korantada / RDS(on) / saturationN/A
Xadka kulaylka70 °C
BaakadQaabka Shield
Xusuusin / noocyoLa jaan qaada Arduino Uno

  • Hubi in LCD-ga lagu shideeyo 5 V si looga fogaado dhaawaca.
  • Isticmaal resistors-ka pull-up ee habboon ee keypad-ka haddii loo baahdo.
  • Debounce riixista furaha ee koodhka si looga fogaado kicinta badan.
  • U fiirso xadka korantada si looga fogaado kulaylka xad dhaafka ah.
  • Tijaabi xidhiidhada ka hor intaadan shidin wareegga.

Tilmaamaha Xidhiidhinta

Si aad u xidhid 1602 LCD Keypad Shield, si fudud ku xidh si toos ah Arduino board-ka. Shilkan waxaa loo qaabeeyey inuu la jaan qaado qaabka pin-ka ee Arduino Uno. Hubi in pin-yada si ammaan ah u xidhnaadeen.

Furaha keypad-ka waxay ku xidhmaan pin-ka gelinta analog-ga A0. Sadarrada xogta LCD-ga waxaa gudaha u maamula maktabadda la isticmaalo, marka uma baahnid inaad si gooni ah u xidhid. Shilkan wuxuu kaloo isticmaalaa dhawr pin oo dijitaal ah si loo xakameeyo iftiinka dambe iyo hawlo kale, kuwaas oo horay loogu qeexay maktabadda. Haddii aad raacdo dukumeentiga maktabadda, waxaad ogaan doontaa inay caadi ahaan isku xidho xidhiidhada si toos ah.

Tusaalooyinka Koodhka & Sharaxaad

Koodhka, waxaan marka hore ku daraynaa maktabadda lagama maarmaanka u ah xakamaynta LCD-ga:

#include <LCD4Bit_mod.h>

Maktabadani waxay fududaysaa isgaarsiinta 1602 LCD-ga. Kadib waxaan abuuraynaa tusaale shay LCD ah oo leh tirada sadarrada la cayimay.

Marka xigta, waxaan bilaabaynaa LCD-ga shaqada setup():

lcd.init();

Sadarkan wuxuu diyaariyaa LCD-ga si loo isticmaalo. Kadib bilowga, waxaan soo bandhigi karnaa farriin tijaabo ah iyada oo la isticmaalayo shaqada lcd.printIn().

Loop-ka guud, waxaan akhriyaynaa gelinta analog-ga si aan u ogaanno riixista furaha:

adc_key_in = analogRead(0);

Sadarkan wuxuu akhriyaa qiimaha keypad-ka. Qiimuhu wuxuu caawiyaa go'aaminta furaha la riixay iyada oo la isticmaalayo shaqada get_key() oo u beddesha qiimaha ADC-ga nambarka furaha.

Muujin / Waxa Laga Filan Karo

Markaad wado koodhka, riixista furaha waxay soo bandhigi doontaa farriimo u dhigma furaha la riixay ee LCD-ga. Tusaale ahaan, riixista furaha midig waxay muujin doontaa "Right Key OK" ee shaashadda (fiidiyowga 05:30). Haddii aqoonsiga furaha uusan si sax ah u shaqeyn, hubi xidhiidhka oo hubi in maktabadaha saxda ah lagu daray Arduino IDE-gaaga.

Waqtiyada Fiidiyowga

  • 00:00 - Hordhac
  • 03:00 - Dulmarka Koodhka
  • 05:30 - Muujinta Riixista Furaha
18-Source code for a 602 LCD keypad shield for Arduino
Luqadda: C++
// Example use of LCD4Bit_mod library
// Downloaded from https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LCD4Bit_mod
// October 1, 2017. This example will work with a 1602 LCD keypad shield.
// Code used for a YouTube video for the Robojax channel
// Watch the video https://youtu.be/naSSiS_9rEw


#include <LCD4Bit_mod.h> 
// Create an object to control an LCD.  
// Number of lines in display = 1
LCD4Bit_mod lcd = LCD4Bit_mod(2); 

// Key messages
char msgs[5][15] = {"Right Key OK ", 
                    "Up Key OK    ", 
                    "Down Key OK  ", 
                    "Left Key OK  ", 
                    "Select Key OK" };
int  adc_key_val[5] ={30, 150, 360, 535, 760 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;

void setup() { 
  pinMode(13, OUTPUT);  // We'll use the debug LED to output a heartbeat

  lcd.init();
  // Optionally, now set up our application-specific display settings, overriding whatever the LCD did in lcd.init()
  // lcd.commandWrite(0x0F);// Cursor on, display on, blink on.  (Nasty!)
   lcd.clear();
  lcd.printIn("Robojax.com Testing");
    
}

void loop() {

	adc_key_in = analogRead(0);    // Read the value from the sensor  
  digitalWrite(13, HIGH);  
  key = get_key(adc_key_in);		        // Convert into key press
	
	if (key != oldkey)				    // If keypress is detected
	{
    delay(50);		// Wait for debounce time
		adc_key_in = analogRead(0);    // Read the value from the sensor  
    key = get_key(adc_key_in);		        // Convert into key press
    if (key != oldkey)				
    {			
      oldkey = key;
      if (key >=0){
      lcd.cursorTo(2, 0);  // Line = 2, x = 0
  			lcd.printIn(msgs[key]);
      }
    }
  }
  
  //delay(1000);
  digitalWrite(13, LOW);
  

 
  
  
}

// Convert ADC value to key number
int get_key(unsigned int input)
{
	int k;
    
	for (k = 0; k < NUM_KEYS; k++)
	{
		if (input < adc_key_val[k])
		{
           
    return k;
        }
	}
    
    if (k >= NUM_KEYS)
        k = -1;     // No valid key pressed
    
    return k;
}

Kheyraadka & Tixraacyada

Faylasha📁

Fayl la'aan.