در آموزش های قبلی نحوه توسعه پین های خروجی آردوینو با استفاده از 74HC595 شرح داده شد . استفاده از 74HC595 تنها خروجی های آردوینو را توسعه می دهد برای توسعه ورودی های به طور مثال برای اتصال کلید ها و… به عنوان ورودی به آردوینو ، نمی توان از 74HC595 استفاده نمود . در این آموزش به گسترش ورودی های آردوینو با استفاده از چیپ 74HC165 خواهیم پرداخت . 74HC165 یک شیفت رجیستر PISO است که می تواند دیتا یا مقادیر را به صورت موازی دریافت و آن را به صورت سریال برای MCU بفرستد . لذا می توانید از این چیپ برای گسترش ورودی های آردوینو استفاده کنید . تنها از طریق چهار پین از آردوینو می توانید مقدار چندین کلید را بخوانید .
در تصویر زیر پایه های این چیپ شرح داده شده اند :
1- Vcc پین تغذیه ماژول می باشد .
2- CLK-INH پین فعال ساز پالس ورودی می باشد ( برای فعال سازی باید به زمین متصل شود )
3- پین های A تا H ورودی های ماژول هستند .
4- SER خروجی سریال ماژول است .
5- GND زمین ماژول می باشد .
راه اندازی 74HC165 با آردوینو :
در راه اندازی این 74HC165 پین های ورودی نباید حالت ناشناخته ای داشته باشند و حتما باید به VCC یا GND متصل باشند . از این رو تمامی پین ها را Pull up یا Pull down کنید . در تصویر زیر نحوه اتصال 74HC165 به آردوینو نشان داده شده است :
کد های آردوینو :
#include <ShiftIn.h> // Init ShiftIn instance with one chip. // The number in brackets defines the number of daisy-chained 74HC165 chips // So if you are using two chips, you would write: ShiftIn<2> shift; ShiftIn<1> shift; void setup() { Serial.begin(9600); // declare pins: pLoadPin, clockEnablePin, dataPin, clockPin shift.begin(8, 9, 11, 12); } void displayValues() { for(int i = 0; i < shift.getDataWidth(); i++) Serial.print( shift.state(i) ); // get state of button i Serial.println(); } void loop() { if(shift.update()) // read in all values. returns true if any button has changed displayValues(); delay(1); }