Arduino UnoR3 + LEDs + shift registers
Arduino UnoR3 + LEDs + shift registers
проблем несколько:
1. Собрала схему по инструкции с официального сайта http://arduino.cc/en/Tutorial/ShiftOut. Проверила уже не раз. При подключении второго shift регистра и с ним второго набора из 8ми диодов мигание получается синхронным, т.е. при загрузке приведенных там примеров мигают два первых диода на обоих регистрах, потом два вторых диода и т.п. Т.е. не получается сделать так, чтобы диоды зажигались последовательно: сначала пройдя ряд на первом регистре, а потом на втором.
2. По проекту мне нужно сделать так, чтобы после того, как пройдет программа с набором света (вот эта: http://learn.adafruit.com/adafruit-ardu ... duino-code) в конце, тогда, когда загорается последний диод в линейке, должен подаваться звуковой сигнал (можно даже типовой из примеров в самом ардуино). после того, как он закончит играть мелодию, он должен замолчать.
я уже неделю пробую разные варианты: и пыталась диоды по-отдельности прописывать и разные другие программы грузила. никак не получается.
ПОМОГИТЕ ПОЖАЛУЙСТА
1. Собрала схему по инструкции с официального сайта http://arduino.cc/en/Tutorial/ShiftOut. Проверила уже не раз. При подключении второго shift регистра и с ним второго набора из 8ми диодов мигание получается синхронным, т.е. при загрузке приведенных там примеров мигают два первых диода на обоих регистрах, потом два вторых диода и т.п. Т.е. не получается сделать так, чтобы диоды зажигались последовательно: сначала пройдя ряд на первом регистре, а потом на втором.
2. По проекту мне нужно сделать так, чтобы после того, как пройдет программа с набором света (вот эта: http://learn.adafruit.com/adafruit-ardu ... duino-code) в конце, тогда, когда загорается последний диод в линейке, должен подаваться звуковой сигнал (можно даже типовой из примеров в самом ардуино). после того, как он закончит играть мелодию, он должен замолчать.
я уже неделю пробую разные варианты: и пыталась диоды по-отдельности прописывать и разные другие программы грузила. никак не получается.
ПОМОГИТЕ ПОЖАЛУЙСТА
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
Все специалисты сейчас заняты. Ожидайте ответа. Не вешайте трубку.
А еще хорошо бы увидеть ваш исходный код.
Спасибо.
А еще хорошо бы увидеть ваш исходный код.
Спасибо.
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
Григорий, спасибо большое за оперативный ответ. Код, с которым я сейчас пытаюсь что-либо сделать во второй ссылке. Если честно у меня уже столько вариантов, что я уже запуталась в них. Я пытаюсь прописать последовательность перехода от одного регистра к другому. Как вариант я даже решила оставить синхронное включение на всех регистрах, но дописать в конце включение звука - но это тоже не получается.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
По поводу п. 1 - внимательно посмотрите, как соединены входы данных DS у сдвиговых регистров. Складывается ощущение, что они соединены между собой.
Проверьте, пожалуйста.
Кстати, какой чип вы используете?
К п.2 перейдем когда разберемся с п. 1.
Проверьте, пожалуйста.
Кстати, какой чип вы используете?
К п.2 перейдем когда разберемся с п. 1.
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
DS первого регистра соединен с 11 пином на плате, а между собой регистры соединены ST CP первого регистра с таким же входом второго и с 9 пином на плате, SH CP первого с таким же второго и с 12 пином на плате. и еще Q7 выход на первом регистре соединен с DS на втором. я делала все по схеме из первой ссылке. проверила несколько раз.
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
чип - Выходной сдвиговый регистр 74HC595
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
Попробуйте скетч, который я привел ниже, и напишите что отображается на светодиодах. Должно быть так: RG1=11111111, RG2=01010101
Код: Выделить всё
//Pin connected to ST_CP of 74HC595
int latchPin = 9;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
void setup() {
//Start Serial for debuging purposes
Serial.begin(9600);
//set pins to output because they are addressed in the main loop
pinMode(latchPin, OUTPUT);
}
void loop() {
//ground latchPin and hold low for as long as you are transmitting
digitalWrite(latchPin, 0);
//count up on GREEN LEDs
shiftOut(dataPin, clockPin, B01010101);
//count down on RED LEDs
shiftOut(dataPin, clockPin, B11111111);
//return the latch pin high to signal chip that it
//no longer needs to listen for information
digitalWrite(latchPin, 1);
delay(100);
}
void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
// This shifts 8 bits out MSB first,
//on the rising edge of the clock,
//clock idles low
//internal function setup
int i=0;
int pinState;
pinMode(myClockPin, OUTPUT);
pinMode(myDataPin, OUTPUT);
//clear everything out just in case to
//prepare shift register for bit shifting
digitalWrite(myDataPin, 0);
digitalWrite(myClockPin, 0);
//for each bit in the byte myDataOut
//NOTICE THAT WE ARE COUNTING DOWN in our for loop
//This means that %00000001 or "1" will go through such
//that it will be pin Q0 that lights.
for (i=7; i>=0; i--) {
digitalWrite(myClockPin, 0);
//if the value passed to myDataOut and a bitmask result
// true then... so if we are at i=6 and our value is
// %11010100 it would the code compares it to %01000000
// and proceeds to set pinState to 1.
if ( myDataOut & (1<<i) ) {
pinState= 1;
}
else {
pinState= 0;
}
//Sets the pin to HIGH or LOW depending on pinState
digitalWrite(myDataPin, pinState);
//register shifts bits on upstroke of clock pin
digitalWrite(myClockPin, 1);
//zero the data pin after shift to prevent bleed through
digitalWrite(myDataPin, 0);
}
//stop shifting
digitalWrite(myClockPin, 0);
}
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
постоянно горят все диоды на первом регистре и первый на втором
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
Попробуйте другой вариант и сообщите результаты.
Код: Выделить всё
//Pin connected to ST_CP of 74HC595
int latchPin = 9;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
void setup() {
//set pins to output because they are addressed in the main loop
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, MSBFIRST, B01010101);
shiftOut(dataPin, clockPin, MSBFIRST, B11111111);
digitalWrite(latchPin, 1);
delay(100);
}
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
результат тот же