—— د DWIN پراختیا کونکي فورم څخه
پدې مسله کې ، موږ به تاسو ته د DWIN پراختیا کونکي فورم څخه د جایزې ګټونکي خلاصې سرچینې قضیه معرفي کړو: د هوښیار پیشو خواړو کنټرول سیسټم. انجنیرانو د DWIN سمارټ سکرین څخه کار اخیستی ترڅو د تودوخې، رطوبت، او د پیشو د خوړو پاتې مقدار وڅیړي، او د پیشو د خواړو خوړلو ریکارډونه خوندي کړي. دوی په ځانګړي ډول د رنګ رنګ کولو سټایل UI سیټ ډیزاین کړی ، په بیله بیا د رنګ کلیک تاثیر کله چې د ګوتې لخوا لمس کیږي ، د ټچ فیډبیک لید لید ته وده ورکولو لپاره.
پیژندنه:
1.UI انځور مواد
د DWIN سمارټ سکرین د عکسونو پراساس د UI پراختیا بشپړوي ، آډیو او نور توکي باید د سکرین نندارې مینځپانګې سره سم دمخه چمتو شي.
![امریکا (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bce84b7f87048.jpg)
2. د انٹرفیس پراختیا
د DGUS سافټویر د پرت پوښښ له لارې د UI اغیز بحالوي، چمتو شوي توکي د DGUS سافټویر کې بشپړ انځور کې یوځای کوي، او د نندارې او ټچ افعال تنظیموي.
![امریکا (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bd07e78a77806.jpg)
3. د کلک اغیزو او غږ اغیزو پلي کول
د ټچ موقعیت د 51 برنامې له لارې ترلاسه کیږي ، د فشار اغیز د ګوتو حرکت تعقیبوي ، او د کلیدي ملګري غږ اغیز هم ترلاسه کیږي.
(1) د ټچ موقعیت کوډ کشف کړئ او آډیو غږ کړئ:
void TouchDetect()
{
u16 او[3] = 0;
u8 i = 0 ;
لپاره(i = 0;i
{
Va[i] = Read_Dgus(0x0016 + i)؛
که (Va[0] == 0x5A01)
{
}
بل
{
ماتول
}
}
که (i != 0) // د ننوتلو لپاره لومړی کلیک وکړئ
{
u16 play[2] = {0x0001, 0x4000};
touchAnimationFlag = 1;
touchAnimationCnt = 0 ;
touchPosX = Va[1];
touchPosY = Va[2];
write_dgus_vp(0x00A0, play, 2);
}
}
(2) د ټچ اغیزې ښودلو کوډ په لاندې ډول دی:
باطل ټچ سټارټ()
{
که (touchAnimation Flag == 1)
{
که (touchAnimationCnt == 0)
{
ولیکئ_Dgus(0x5011, touchPosX - 100);
ولیکئ_Dgus(0x5012, touchPosY - 100);
}
ولیکئ_Dgus(0x5000, touchAnimationCnt);
touchAnimationCnt++;
که (touchAnimationCnt == 6)
{
touchAnimationFlag = 0;
ولیکئ_Dgus(0x5011, 1024);
ولیکئ_Dgus(0x5012, 600);
}
}
}
4. بل ګام دا دی چې د سکرین له لارې ورته پیرامیټونه تنظیم کړئ، او بیا د ESP32 له لارې د پیشو خواړو کنټرولر ته ډاټا لیږدئ ترڅو د بلی خواړو اتوماتیک تغذیه فعالیت احساس کړي. ځانګړی کوډ په لاندې ډول دی:
// د تڼۍ حالت ترلاسه کړئ
باطل get_key_status()
{
int i = 0 ;
//u16 Va=Read_Dgus(addr);
u16 Va=Read_Dgus(0x1000);
که (Va != 0x0000)
{
//سپټه پاڼه
که (Va == 0x0103) // د g شمیره ځای په ځای کړئ
{
u16 switchpage[2] = {0x5A01, 19};
setNum = placeGramNum;
شاته پاڼه = 1; // د وضعیت پاڼې ته بیرته راګرځئ
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va == 0x0102)
{
OneSendData3(placeGramNum); //ځاید پیشو خواړهیوځل
}
بله که (Va == 0x0101) // ترتیب پاڼه
{
u16 switchpage[2] = {0x5A01, 3};
لپاره(i = 0;i
{
که (i == 0)
{
ولیکئ_ډګس(0x3070 + i * 0x10 + 0, اوسنی وخت[i] % 10);
ولیکئ_Dgus(0x3070 + i * 0x10 + 2, اوسنی وخت [i] / 10 % 10);
ولیکئ_ډګس(0x3070 + i * 0x10 + 4, اوسنی وخت [i] / 100 % 10);
ولیکئ_ډګس(0x3070 + i * 0x10 + 6, اوسنی وخت [i] / 1000 % 10);
}
بل
{
ولیکئ_ډګس(0x3070 + i * 0x10 + 0, اوسنی وخت[i] % 10);
ولیکئ_Dgus(0x3070 + i * 0x10 + 2, اوسنی وخت [i] / 10 % 10);
}
}
write_dgus_vp(0x0084, switchpage, 2); // د ترتیباتو پاڼې ته ننوځئ
}
نور که (Va == 0x0100) //آرecord پاڼه
{
u16 switchpage[2] = {0x5A01, 2};
لپاره(i = 0;i
{
که (i == 0)
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[0][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[0][i] / 10 % 10);
Write_Dgus(0x2000 + i * 0x10 + 4, eatFeedList[0][i] / 100% 10);
Write_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[0][i] / 1000 % 10);
}
بل
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[0][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[0][i] / 10 % 10);
}
}
write_dgus_vp(0x0084, switchpage, 2); // د ریکارډ پاڼې ته ننوځئ
}
//آرecord پاڼه
بله که (Va == 0x0201) // مخکنی مخ ثبت کړئ
{
که (lookEatCnt > 0)
{
lookEatCnt--;
لپاره(i = 0;i
{
که (i == 0)
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
ولیکئ_ډګس(0x2000 + i * 0x10 + 4, د ایټ فیډ لیست[lookEatCnt][i] / 100 % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000 % 10);
}
بل
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
}
}
}
}
else if(Va == 0x0202) // د مخ بل مخ ثبت کړئ
{
که (lookEatCnt
{
lookEatCnt++;
لپاره(i = 0;i
{
که (i == 0)
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
ولیکئ_ډګس(0x2000 + i * 0x10 + 4, د ایټ فیډ لیست[lookEatCnt][i] / 100 % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000 % 10);
}
بل
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
}
}
}
}
// ترتیب پاڼه
نور که (Va == 0x0302)
{
که (د وخت موډ == 1)
{
وخت موډ = 0;
ولیکئ_Dgus(0x3A12, 139);
}
}
نور که (Va == 0x0303)
{
که (timeMode == 0)
{
وخت موډ = 1;
ولیکئ_Dgus(0x3A12, 242);
}
}
نور که (Va >= 0x0304 && Va
{
u16 switchpage[2] = {0x5A01, 19};
backPage = 3 ;
backNum = او؛
setNum = timrIntervalHour[Va - 0x0304];
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va >= 0x030A && Va
{
u16 switchpage[2] = {0x5A01, 19};
backPage = 3 ;
backNum = او؛
setNum = اوسنی وخت[Va - 0x030A]؛
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp(0x0084, switchpage, 2);
}
//الفد معلوماتو پاڼه تنظیم کړئ
نور که (Va == 0x0400) //تایید کړه
{
u16 switchpage[2] = {0x5A01, 0x0000};
switchpage[1] = شاته مخ
که (شاته پاڼه == 1) // د وضعیت پاڼې ته بیرته راشئ
{
placeGramNum = setNum;
ولیکئ_ډګس(0x1140 + 0, ځای ګرام نمبر % 10);
ولیکئ_ډګس(0x1140 + 2, ځای ګرام نمبر / 10 % 10);
}
بل که (شاته پاڼه == 3)
{
که (backNum>= 0x0304 && backNum
{
u16 انتخاب = 0;
Select = (backNum - 0x0304) * 0x10;
timrIntervalHour [backNum - 0x0304] = setNum;
ولیکئ_Dgus(0x3010 + انتخاب + 0, setNum % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 2, setNum / 10 % 10);
}
نور که (backNum>= 0x030A && backNum
{
u16 انتخاب = 0;
Select = (backNum - 0x0304) * 0x10;
اوسنی وخت [backNum - 0x030A] = setNum;
که (backNum == 0x030A)
{
ولیکئ_Dgus(0x3010 + انتخاب + 0, setNum % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 2, setNum / 10 % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 4, setNum / 100 % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 6, setNum / 1000 % 10);
}
بل
{
ولیکئ_Dgus(0x3010 + انتخاب + 0, setNum % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 2, setNum / 10 % 10);
}
}
}
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va == 0x0401) //شاته
{
u16 switchpage[2] = {0x5A01, 0x0000};
switchpage[1] = شاته مخ
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va == 0x0402) // شمیري زیاتوالی
{
setNum++;
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
}
نور که (Va == 0x0403) // شمیري کمښت
{
که (setNum > 0)
setNum--;
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
}
ولیکئ_Dgus(0x1000, 0);
}
}
د پوسټ وخت: سپتمبر-19-2023