در این آموزش، ما یک شمارشگر دیجیتال با استفاده از یک نمایشگر هفتقسمتی که توسط میکروکنترلر ESP32 کنترل میشود، ایجاد خواهیم کرد. شمارشگر از 0 تا 9 افزایش مییابد و سپس به 0 کاهش مییابد و نمای واضحی از فرآیند شمارش را ارائه میدهد. همچنین خواهیم دید که چگونه میتوانیم بخشهای مجزا را روشن کنیم و حروف را بر روی نمایشگر هفتقسمتی نمایش دهیم.
ESP32_Animte7Segment-مقاطع
این پروژه از یک شیفت رجیستر 74HC595 برای کنترل نمایشگر استفاده میکند که به ما این امکان را میدهد تا بخشها را بهطور مؤثری مدیریت کنیم بدون اینکه از تعداد زیادی پایه GPIO در ESP32 استفاده کنیم. با ارسال مقادیر دوتایی به شیفت رجیستر، میتوانیم بخشهای مربوطه را برای نمایش اعداد و حروف روشن کنیم. برای درک عمیقتر از این فرآیند، میتوانید به ویدیو (در ویدیو در 03:15) مراجعه کنید.
ESP32_حرکت7Segment-حروف
توضیح سختافزار
اجزای اصلی این پروژه شامل میکروکنترلر ESP32، یک رجیستر شیفت 74HC595 و یک نمایشگر هفتقسمتی است. ESP32 یک میکروکنترلر قدرتمند با قابلیتهای Wi-Fi و Bluetooth داخلی است که آن را برای پروژههای اینترنت اشیا مناسب میسازد. 74HC595 یک رجیستر شیفت است که به ما اجازه میدهد چندین خروجی را با استفاده از تنها چند پایه ورودی کنترل کنیم. این دستگاه با دریافت دادههای سری و تبدیل آن به خروجی موازی کار میکند که برای راهاندازی یک نمایشگر هفتقسمتی ایدهآل است.
نمایشگر هفتقسمتی متشکل از هفت LED مستقل است که به شکل عدد هشت چیده شدهاند. هر قسمت میتواند با ارسال مقدار باینری مناسب به رجیستر شیفت روشن یا خاموش شود. به عنوان مثال، برای نمایش عدد ۰، همه قسمتها به جز قسمت وسط (G) باید روشن باشند.
اطمینان حاصل کنید که تأمین ولتاژ به درستی انجام شود (2 ولت تا 6 ولت).
جریان خروجی را محدود کنید تا از گرم شدن بیش از حد جلوگیری شود.
برای به دست آوردن روشنایی بهینه، از مقاومتهای جداگانه برای هر بخش استفاده کنید.
در نصب سیمکشی احتیاط کنید تا از اتصالات اشتباه و اتصال کوتاه جلوگیری شود.
د pinout را با دقت دنبال کنید تا از پیکربندی نادرست جلوگیری شود.
دستورالعملهای سیمکشی
ESP32-10-seven-segment-wiring
ابتدا برد مدار خود را راهاندازی کنید. ریل زمین (خط آبی) و ریل برق (خط قرمز) را وصل کنید. زمین باید به خط آبی از یک طرف برد مدار متصل شود، در حالی که برق باید به خط قرمز از طرف مقابل متصل شود. از یک سیم سیاه برای اتصال زمین ESP32 به ریل زمین و از یک سیم قرمز برای اتصال پایه 3.3V ESP32 به ریل برق استفاده کنید.
سپس، شیفتر ثبت کننده 74HC595 را در تخته نان قرار دهید و اطمینان حاصل کنید که شکاف به درستی جهتگیری شده است. پایه 11 (DS) را به پایه 25 روی ESP32، پایه 12 (SH_CP) را به پایه 26 و پایه 14 (ST_CP) را به پایه 27 متصل کنید. پایه زمین (پایه 8) شیفتر ثبت کننده را به ریل زمین و پایه 10 (MR) را به ریل برق برای فعالسازی متصل کنید.
برای نمایشگر هفتقسمتی، پایههای مربوط به قسمتها (a-g) را به پایههای خروجی شیفت رجیستر متصل کنید. از یک مقاومت (۲۲۰ اهم) به صورت سری برای هر قسمت استفاده کنید تا جریان محدود شود. اطمینان حاصل کنید که اتصالات مناسبی برای پایه مشترک دارید که میتواند بر اساس نوع نمایشگر شما یا آنود مشترک یا کاتود مشترک باشد.
نمونههای شِفر (کود) و راهنمایی
در تابع راهاندازی، ابتدا پایههای متصل به ثبت شیفت را بهعنوان خروجی تعریف میکنیم. این اطمینان حاصل میکند که ESP32 ما میتواند دادههای ارسالشده به صفحهنمایش را کنترل کند.
اینجا ما تعریف میکنیمSTcp,SHcp, andDSبه عنوان پایههای متصل به ST_CP، SH_CP و DS از شیفت رجیستر، به ترتیب. تنظیم این پایهها به عنوان خروجی به ما این امکان را میدهد که شیفت رجیستر را کنترل کنیم.
حلقه اصلی برنامه از ۰ تا ۹ میشمارد و مقادیر مربوطه را با استفاده از نمایشگر ارسال میکندshiftOutتابع.
for(int num = 0; num <10; num++)
{
digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
delay(1000);
}
این حلقه مقدار را افزایش میدهدnumمتغیر، ارسال مقدار مربوطه ازdatArrayبه نمایش هر ثانیه. TheshiftOutتابع دادهها را به ثبت شیفت منتقل میکند، که سپس بخشهای مربوطه را روشن میکند.
نمایشگاهی / چه انتظاری باید داشت
هنگامی که سیمکشی کامل و شِفر (کود) بارگذاری شد، باید نمایشگر هفتقسمتی را ببینید که از ۰ تا ۹ میشمارد و قبل از شمارش به سمت ۰، بهطور مختصر توقف میکند. هر عدد به مدت یک ثانیه نمایش داده خواهد شد. اگر میخواهید شمارش را سریعتر کنید، میتوانید تاخیر در حلقه را تنظیم کنید (در ویدئو در ۱۵:۳۰).
هنگام دستکاری کردن بخشها به طور جداگانه، به یاد داشته باشید که مقادیر باینری صحیح را برای نمایش حروف یا بخشهای خاص ارسال کنید. اگر صفحه نمایش کم نور به نظر میرسد، در نظر بگیرید که برای هر بخش از مقاومسازهای جداگانه استفاده کنید تا از روشنایی یکنواخت در کل صفحه نمایش اطمینان حاصل کنید.
زمانبندی ویدئو
۰۰:۰۰ شروع
۱:۵۳ مقدمهای بر نمایشگرهای هفتSegment
4:38 توضیحاتی در مورد سیمکشی
۱۳:۱۵ شِفر (کود) آردوینو-۱
انتخاب پورت COM و برد ESP32 در ساعت ۱۷:۰۱
۱۸:۴۳ نمایش-۱
نمایش فقط یک رقم :13
شمارنده بالا و پایین ۲۱:۳۸
۲۳:۰۷ روشن/خاموش کردن هر بخش
۲۴:۵۳ نمایش A، B، C، D، E و F
تصاویر
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment