قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 17-03-2016, 08:34 PM المشاركة 1   
ha مساعدة فب كود Twitter FaceBook Google+



#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);

int keypad_pin = A0;
int keypad_value = 0;
int keypad_value_old = 0;

char btn_push;

byte mainMenuPage = 1;
byte mainMenuPageOld = 1;
byte mainMenuTotal = 4;

void setup()
{
lcd.begin(16,2); //Initialize a 2x16 type LCD

MainMenuDisplay();
delay(1000);
}
void loop()
{
btn_push = ReadKeypad();

MainMenuBtn();

if(btn_push == 'S')//enter selected menu
{
WaitBtnRelease();
switch (mainMenuPage)
{
case 1:
MenuA();
break;
case 2:
MenuB();
break;
case 3:
MenuC();
break;
case 4:
MenuD();
break;
}

MainMenuDisplay();
WaitBtnRelease();
}



delay(10);

}//--------------- End of loop() loop ---------------------
void MenuA()
{

lcd.clear();
lcd.setCursor(0,0);
lcd.print("hello");
while(ReadKeypad()!= 'L')
{
digitalWrite(11, HIGH);
delay(100);//Insert Task for Menu A here


}
}
void MenuB()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Inside Menu B");

while(ReadKeypad()!= 'L')
{
//Insert Task for Menu A here

}
}
void MenuC()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Inside Menu C");

while(ReadKeypad()!= 'L')
{
//Insert Task for Menu A here

}
}
void MenuD()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Inside Menu D");

while(ReadKeypad()!= 'L')
{
//Insert Task for Menu A here

}
}

void MainMenuDisplay()
{
lcd.clear();
lcd.setCursor(0,0);
switch (mainMenuPage)
{
case 1:
lcd.print("1. Menu A");
break;
case 2:
lcd.print("2. Menu B");
break;
case 3:
lcd.print("3. Menu C");
break;
case 4:
lcd.print("4. Menu D");
break;
}
}

void MainMenuBtn()
{
WaitBtnRelease();
if(btn_push == 'U')
{
mainMenuPage++;
if(mainMenuPage > mainMenuTotal)
mainMenuPage = 1;
}
else if(btn_push == 'D')
{
mainMenuPage--;
if(mainMenuPage == 0)
mainMenuPage = mainMenuTotal;
}

if(mainMenuPage != mainMenuPageOld) //only update display when page change
{
MainMenuDisplay();
mainMenuPageOld = mainMenuPage;
}
}

char ReadKeypad()
{
/* Keypad button analog Value
no button pressed 1023
select 741
left 503
down 326
up 142
right 0
*/
keypad_value = analogRead(keypad_pin);

if(keypad_value < 100)
return 'R';
else if(keypad_value < 200)
return 'U';
else if(keypad_value < 400)
return 'D';
else if(keypad_value < 600)
return 'L';
else if(keypad_value < 800)
return 'S';
else
return 'N';

}

void WaitBtnRelease()
{
while( analogRead(keypad_pin) < 800){}
}

لا استطيع اضافة اي مهام
اي حلول

اعلانات

db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 18-03-2016, 09:47 AM المشاركة 2   
افتراضي


configure the pin mode pinMode(!!, OUTPUT)
شكرا اتحلت

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:10 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025