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
 - Сотрудник ПАКПАК
 - Сообщения: 1029
 - Зарегистрирован: 22 окт 2010, 23:57
 
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
Все специалисты сейчас заняты. Ожидайте ответа. Не вешайте трубку.
А еще хорошо бы увидеть ваш исходный код.
Спасибо.
			
			
									
									
						А еще хорошо бы увидеть ваш исходный код.
Спасибо.
Re: Arduino UnoR3 + LEDs + shift registers НЕ РАБОТАЕТ КАК О
Григорий, спасибо большое за оперативный ответ. Код, с которым я сейчас пытаюсь что-либо сделать во второй ссылке. Если честно у меня уже столько вариантов, что я уже запуталась в них. Я пытаюсь прописать последовательность перехода от одного регистра к другому. Как вариант я даже решила оставить синхронное включение на всех регистрах, но дописать в конце включение звука - но это тоже не получается.
			
			
									
									
						- Mr.Kubikus
 - Сотрудник ПАКПАК
 - Сообщения: 1029
 - Зарегистрирован: 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
 - Сотрудник ПАКПАК
 - Сообщения: 1029
 - Зарегистрирован: 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
 - Сотрудник ПАКПАК
 - Сообщения: 1029
 - Зарегистрирован: 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 НЕ РАБОТАЕТ КАК О
результат тот же