Сдвиговый регистр
- Войдите на сайт для отправки комментариев
Подскажите пожалуйста в чем причина и что, я делаю не так.
Подключил сдвиговый регистр к ардуино Уно, запустил бегущий огонь, все работает.
хочу запустить этот бегущий огонь по нажатию кнопки.
Подключил кнопку и ни чего.
Код прилагаю, что в нем не так?.
int dataPin = 9; //Пин подключен к DS входу 74HC595
int latchPin = 10; //Пин подключен к ST_CP входу 74HC595
int clockPin = 11; //Пин подключен к SH_CP входу 74HC595
int button = 7; // Пин кнопки
int val = 0;
void setup() {
//устанавливаем режим OUTPUT
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode( button, INPUT_PULLUP );
}
void loop() {
val = digitalRead( button );
byte byteToSend = 0; //Создаем пустой байт B00000000
if( val == 0 ){
for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита
byteToSend = 0; // Обнуляем байт при каждом проходе
bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д.
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита
digitalWrite(latchPin, HIGH);
delay(1000);
}
}
}
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
может вы кнопку не на GND комутируете, а на 5V?
int dataPin = 9; //Пин подключен к DS входу 74HC595 int latchPin = 10; //Пин подключен к ST_CP входу 74HC595 int clockPin = 11; //Пин подключен к SH_CP входу 74HC595 int button = 7; // Пин кнопки int val = 0; void setup() { //устанавливаем режим OUTPUT pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode( button, INPUT_PULLUP ); } void loop() { val = digitalRead( button ); byte byteToSend = 0; //Создаем пустой байт B00000000 if( val == 0 ){ for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита byteToSend = 0; // Обнуляем байт при каждом проходе bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д. digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита digitalWrite(latchPin, HIGH); delay(1000); } } }Схема подключения?
Спасибо. Это моя не внимательность. Заработало
Спасибо. Это моя не внимательность. Заработало
На кнопку забыл нажать?
Я когда прочитал
То почему-то сразу подумал: "А на кнопку-то нажимал"?
Спасибо. Это моя не внимательность. Заработало
На кнопку забыл нажать?
Я когда прочитал
То почему-то сразу подумал: "А на кнопку-то нажимал"?
Нет, он просто на 5Вольт ее цеплял, а не на массу