wtorek, 12 lipca 2016

Arduino - dwa pierwsze układy.



Powoli uczę się Arduino. Idzie całkiem nieźle. Aby praktycznie wykorzystać materiał, który już poznałem nadszedł czas na praktykę. Z zabawy z czystym ATMega zostały mi dwa zmontowane na płytkach prototypowych układy z rejestrem przesuwnym. Postanowiłem podłączyć je do Arduino i stosownie oprogramować.

Pierwszy układ to zabawa z diodami LED. Schemat zmontowanego układu przedstawia rysunek.




Program sterujący wygląda następująco:

int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  }
void loop() {
  int i;
  for (i=0;i<=7;i++){
  digitalWrite(latchPin,LOW);
  shiftOut(dataPin,clockPin,MSBFIRST,pow2(i));
  digitalWrite(latchPin,HIGH);
  delay(50);
  }
  for (i=7;i>=0;i--){
  digitalWrite(latchPin,LOW);
  shiftOut(dataPin,clockPin,MSBFIRST,pow2(i));
  digitalWrite(latchPin,HIGH);
  delay(50);
  }

}

int pow2(int n)
{
  int k;
  int result;
  result=1;
  if (n==0) {return 1;} else {
  for (k=0;k<n;k++){ result=result*2;}
}
return result;
}

Efekt działania ilustruje film:


Drugi projekt  polegał na wykorzystaniu 7 segmentowego wyświetlacza LED.

Wsad do Arduino:

int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;

int matrix[10];

 

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  matrix[0]=0b00111111;
  matrix[1]=0b00000110;
  matrix[2]=0b01011011;
  matrix[3]=0b01001111;
  matrix[4]=0b01100110;
  matrix[5]=0b01101101;
  matrix[6]=0b01111101;
  matrix[7]=0b00000111;
  matrix[8]=0b01111111;
  matrix[9]=0b01101111;
  
  }

void loop() {
  int i;
  for(i=0;i<=9;i++){
  digitalWrite(latchPin,LOW);
  shiftOut(dataPin,clockPin,MSBFIRST,~matrix[i]);
  digitalWrite(latchPin,HIGH);
  delay(1000);
  }

} 


Film ilustruje działanie układu:



Brak komentarzy:

Prześlij komentarz