در آموزش های قبلی نحوه توسعه پین های خروجی آردوینو با استفاده از 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);
}

 

 

 

Tags:
About Author: USER_4