воскресенье, 14 сентября 2014 г.

Arduino - скетч обратного отсчета

Скетч таймера от 0 до 9 со сдвиговым регистром и семисегментником

#include <SPI.h> //подключаем библиотеку SPI
enum { digitPin = 9 }; //выбираем линию SS регистра на 9-м пине Arduino
unsigned long timer=0, digitTimerPrev=0;
int i=0, j=0;

void setup(){
  SPI.begin(); //инициализируем SPI
    //переводим выбранный для передачи пин в режим вывода
  pinMode(digitPin, OUTPUT);
}


void loop(){
  //Заполняем массив байтами, которые будем передавать
  static uint8_t digit[16] = 
    {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
    //передаем по два байта из массива и защелкиваем регистры 
    timer=millis();
    
   if (timer-digitTimerPrev>1000){
      digitalWrite(digitPin, LOW);
      SPI.transfer(digit[i]);
      
      digitalWrite(digitPin, HIGH);
      i<9 ? i++ : i=0;
      digitTimerPrev=timer;
      }
}

Комментариев нет:

Отправить комментарий