Прошу помощи с ардуино и моим проектом
Re: Прошу помощи с ардуино и моим проектом
да, я тупой пока в этом признаю, я всего пару дней с ардуино знакомлюсь ))) И пока тяжеловато всё даётся. Пробовал грузить готовые скетчи скачанные с интернета пока. Понимаю что наглость, но мог бы кто нибудь всё выше написанное собрать в один код чтоб я загрузил и посмотрел на примере как это всё работает? Сам пробу. но компилятор ардуиновский ошибки выдаёт постоянно. А иначе если я на готовом примере не пощупаю я так и не въеду )
P.S.
Пока собрал ту схему счётчика, вроде работает, но там она считает до десяти. Убрал семисегментный индикатор и вместо него вывожу на 8 светодиодов, потому что там всего один сдвиговый регистр 595-ый на восемь разрядов. Пока всё. Эти десять байто по очереди выводятся, и так по кругу.
P.S.
Пока собрал ту схему счётчика, вроде работает, но там она считает до десяти. Убрал семисегментный индикатор и вместо него вывожу на 8 светодиодов, потому что там всего один сдвиговый регистр 595-ый на восемь разрядов. Пока всё. Эти десять байто по очереди выводятся, и так по кругу.
- Реклама
-
Самсусамыч
Re: Прошу помощи с ардуино и моим проектом
Вот на этом примере и учись… разбери его по полочкам, какая процедура за что отвечает… но без знания самого языка так и не поймёшь суть происходящего.
Всё же светиками мигать вначале нужно научится без каких либо регистров сдвига, а когда поймёшь суть тогда уже за более сложные программы берись… а то получается, что ты хочешь прочитать книгу, а буквы ещё не изучил…
Всё же светиками мигать вначале нужно научится без каких либо регистров сдвига, а когда поймёшь суть тогда уже за более сложные программы берись… а то получается, что ты хочешь прочитать книгу, а буквы ещё не изучил…
Re: Прошу помощи с ардуино и моим проектом
Сделал так код. Но в ардуинку не зашивается почему то, куча ошибок каких то. Поправьте плиз, где накосячил ?
Код: Выделить всё
#define DATA_PIN 13 // пин данных (англ. data)
#define LATCH_PIN 12 // пин строба (англ. latch)
#define CLOCK_PIN 11 // пин такта (англ. clock)
#define BUTTON_PIN 10
void setup()
{
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
if (buttonWasUp && !digitalRead(BUTTON_PIN)) {
delay(10);
if (!digitalRead(BUTTON_PIN))
clicks = (clicks + 1) % 10;
buttonWasUp = digitalRead(BUTTON_PIN);
byte H_byte[10] = {
0b01001100, 0b01000101 // сюда ещё можно сколько угодно написать таких байтов? это для первых 8 светодиодов
}
byte L_byte[10] = {
0b10000111,0b010001010 // и такое же количество и сюда, только для следующих 8 светодиодов ?
}
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, H_byte[clicks]);
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, L_byte[clicks]);
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,
// во втором - B01001100 и т.д. по количеству регистров
digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым
// устанавливая значения на выходах
delayMicroseconds(5);
digitalWrite(latchPin, LOW); // устанавливаем синхронизацию "защелки" на LOW
-
Самсусамыч
Re: Прошу помощи с ардуино и моим проектом
Я и рад бы помочь, но с языком Си не знаком… 
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Прошу помощи с ардуино и моим проектом
почему у тебя в массивах 10 элементов, а заполнено только 2?
напиши вначале кода : #define n 10;
а потом в коде 10 (там где она указывает на количество элементов - в массивах, в счёте) замени на n
потом или массивы дозаполни или в дефайне 10 на 2 замени.
П.С. в массиве цифру можно вообще не ставить, тогда размерность его определится количеством элементов в скобках что идут следом... но лучше её ставить, чтобы в случае, как у тебя, выпала ошибка, а не скомпилировалось, и потом работало криво...
напиши вначале кода : #define n 10;
а потом в коде 10 (там где она указывает на количество элементов - в массивах, в счёте) замени на n
потом или массивы дозаполни или в дефайне 10 на 2 замени.
П.С. в массиве цифру можно вообще не ставить, тогда размерность его определится количеством элементов в скобках что идут следом... но лучше её ставить, чтобы в случае, как у тебя, выпала ошибка, а не скомпилировалось, и потом работало криво...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Реклама
Re: Прошу помощи с ардуино и моим проектом
Для начинающего борьбу с адуриньей (и ардуиноподобными) в рамках корректного подхода
(не "чистого Си", а именно ардуино-референса - там имеются некоторые различия)
рекомендовал бы вычитать все, касающееся ардуинки из
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
и
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
я там ведь также практически "с нуля" разбор начинал.
Там и примеры и обсуждение и ссылки на литературу под самостоятельное прочтение.
Правда стартовая база несколько отличается - и схемотехника уже была изучена и МК под ассемблером.
Alex-DJ
"...Сделал так код. Но в ардуинку не зашивается почему то, куча ошибок каких то. Поправьте плиз, где накосячил ?..."
Собственно читаем ошибки и устраняем - там обычно весьма четко указано "что есть БаГГ".
Или...
Копируем текст сообщения в блокнот и прилагаем текстовой файлик.
Или вставкой в сообщении (обязательно под спойлером!!! дабы "портянок" к просмотру не плодить)
или заархивированным файлом (текстовой не пропустится) к сообщению.
Да версию IDE указывать необходимо (на сегодня актуальна 1.8.9), режим контроля
(вкладка
файл->настройки->флажок напротив "сообщения компилятора"
(в моей выставлено "ВСЕ"))

(не "чистого Си", а именно ардуино-референса - там имеются некоторые различия)
рекомендовал бы вычитать все, касающееся ардуинки из
https://radiokot.ru/forum/viewtopic.php?f=62&t=94201
и
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
я там ведь также практически "с нуля" разбор начинал.
Там и примеры и обсуждение и ссылки на литературу под самостоятельное прочтение.
Правда стартовая база несколько отличается - и схемотехника уже была изучена и МК под ассемблером.
Alex-DJ
"...Сделал так код. Но в ардуинку не зашивается почему то, куча ошибок каких то. Поправьте плиз, где накосячил ?..."
Собственно читаем ошибки и устраняем - там обычно весьма четко указано "что есть БаГГ".
Или...
Копируем текст сообщения в блокнот и прилагаем текстовой файлик.
Или вставкой в сообщении (обязательно под спойлером!!! дабы "портянок" к просмотру не плодить)
или заархивированным файлом (текстовой не пропустится) к сообщению.
Да версию IDE указывать необходимо (на сегодня актуальна 1.8.9), режим контроля
(вкладка
файл->настройки->флажок напротив "сообщения компилятора"
(в моей выставлено "ВСЕ"))
Re: Прошу помощи с ардуино и моим проектом
[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3749410#p3749410"]почему у тебя в массивах 10 элементов, а заполнено только 2?
напиши вначале кода : #define n 10;
а потом в коде 10 (там где она указывает на количество элементов - в массивах, в счёте) замени на n
потом или массивы дозаполни или в дефайне 10 на 2 замени.
П.С. в массиве цифру можно вообще не ставить, тогда размерность его определится количеством элементов в скобках что идут следом... но лучше её ставить, чтобы в случае, как у тебя, выпала ошибка, а не скомпилировалось, и потом работало криво...[/uquote]
Так? Только для проверки я пока сделал для пяти элементов, везде где было в предыдущем коде 10 поменял на 5 и в массивах по 5 элементов.
P.S/
нет , опять ошибка при компиляции (((
напиши вначале кода : #define n 10;
а потом в коде 10 (там где она указывает на количество элементов - в массивах, в счёте) замени на n
потом или массивы дозаполни или в дефайне 10 на 2 замени.
П.С. в массиве цифру можно вообще не ставить, тогда размерность его определится количеством элементов в скобках что идут следом... но лучше её ставить, чтобы в случае, как у тебя, выпала ошибка, а не скомпилировалось, и потом работало криво...[/uquote]
Так? Только для проверки я пока сделал для пяти элементов, везде где было в предыдущем коде 10 поменял на 5 и в массивах по 5 элементов.
Код: Выделить всё
#define n 5;
#define DATA_PIN 13 // пин данных (англ. data)
#define LATCH_PIN 12 // пин строба (англ. latch)
#define CLOCK_PIN 11 // пин такта (англ. clock)
#define BUTTON_PIN 10
void setup()
{
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
if (buttonWasUp && !digitalRead(BUTTON_PIN)) {
delay(10);
if (!digitalRead(BUTTON_PIN))
clicks = (clicks + 1) % 5;
buttonWasUp = digitalRead(BUTTON_PIN);
byte H_byte[5] = {
0b01001100, 0b01000101, 0b00000001, 0b11001100, 0b01010101// пока 5 элементов для примера
}
byte L_byte[5] = {
0b10000111, 0b010001010, 0b00101100, 0b00010000, 0b11110000 // и такое же количество здесь
}
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, H_byte[clicks]);
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, L_byte[clicks]);
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,
// во втором - B01001100 и т.д. по количеству регистров
digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым
// устанавливая значения на выходах
delayMicroseconds(5);
digitalWrite(latchPin, LOW); // устанавливаем синхронизацию "защелки" на LOWнет , опять ошибка при компиляции (((
Re: Прошу помощи с ардуино и моим проектом
Да укладывайте же исходник под спойлер!
Это выделить текст а затем нажать кнопу spoiler в заголовке редактора сообщения на сайте.
Тогда текстовка не будет отвлекать лишнее внимание (а при необходимости читающий ее развернет).
Посмотрю чего там устроить...
А пока... скачайте и почитайте книжи:
http://elektromehanika.org/load/serii_t ... 0-1-0-1874

Это выделить текст а затем нажать кнопу spoiler в заголовке редактора сообщения на сайте.
Тогда текстовка не будет отвлекать лишнее внимание (а при необходимости читающий ее развернет).
Посмотрю чего там устроить...
А пока... скачайте и почитайте книжи:
http://elektromehanika.org/load/serii_t ... 0-1-0-1874
Re: Прошу помощи с ардуино и моим проектом
[uquote="BOB51",url="/forum/viewtopic.php?p=3749470#p3749470"]Да версию IDE указывать необходимо (на сегодня актуальна 1.8.9)[/uquote]
актуальная версия Arduino IDE 1.8.10
актуальная версия Arduino IDE 1.8.10
Re: Прошу помощи с ардуино и моим проектом
1.8.10
Это для виндовс 7-8-10 и "старше"
на ХР (и простеньком компе с пнемIII к примеру) она не пойдет посему и заявлена "как ограниченная" - не у всех 10 используется.
Так что для большинства простолюбителей на сегодня таки 1.8.9 наиболее оптимальна.
Хотя и там есть нюансы (для версии ESP8266 к примеру под ХР допускается только 2.5.0)...
Вот Ваша хотелка отредактированя под прогон в симуляторе (https://www.sites.google.com/site/unoardusim/services)
ибо влом макетку портить на сию мелочь.
Потому текст малость "корявенький" (некоторые ограничения восприятия у симулятора к исходнику - не понимает к примеру переносов строки)...
и собственно схемка
http://img.radiokot.ru/files/20529/22h44tkfsd.GIF
как желательно бы КОТУ рисовать/расматривать.
Тренируйтесь.

Пы.Сы.
Редактор текста на сайте таки вносит некоторые некорректности с "длинными строками", что может привести к ошибкам при копипасте из текста в окне сообщения...
посему прилагаю сам исходник для анализа непосредственно в редакторе IDEбез лишних "сторонних искажений"
Это для виндовс 7-8-10 и "старше"
на ХР (и простеньком компе с пнемIII к примеру) она не пойдет посему и заявлена "как ограниченная" - не у всех 10 используется.
Так что для большинства простолюбителей на сегодня таки 1.8.9 наиболее оптимальна.
Хотя и там есть нюансы (для версии ESP8266 к примеру под ХР допускается только 2.5.0)...
Вот Ваша хотелка отредактированя под прогон в симуляторе (https://www.sites.google.com/site/unoardusim/services)
ибо влом макетку портить на сию мелочь.
Потому текст малость "корявенький" (некоторые ограничения восприятия у симулятора к исходнику - не понимает к примеру переносов строки)...
Спойлер
Код: Выделить всё
// #include <avr/pgmspace.h> // подключаем функционал работы с ПЗУ
//----------------------------------------------
int dataPin = 13; //Пин подключен к DS входу 74HC595
int latchPin = 12; //Пин подключен к ST_CP входу 74HC595
int clockPin = 11; //Пин подключен к SH_CP входу 74HC595
/*
* dataPin,latchPin,clockPin нельзя объявлять иначе ибо функция
* shiftOut оговаривает их значения как int (возможен вариант const int dataPin)
* смотри референс IDE к используемым функциям!!!
*/
byte my_sens = 10; // активный уровень = 0
byte L_data_buf;
byte H_data_buf;
static byte point_ptr;
void outdata();
byte my_data[] = {B10000111, B01001100, B01101100, B00001000, B01000101, B01001010,B11111100, B10100101, B10100000, B10011010, B01010010, B10000000, B01010101, B00000010, B10100101, B01011010, B01011010, B10100101}; // 18
/*
const byte my_data[18] PROGMEM = {\
B10000111, B01001100, B01101100, B00001000, B01000101, B01001010,\
B11111100, B10100101, B10100000, B10011010, B01010010, B10000000,\
B01010101, B00000010, B10100101, B01011010, B01011010, B10100101}; // 18
// столько данных - сколько нужно (или несколько массивов см. референс)
// однако размещение только перед setup()
// и НЕ ЗАБЫВАЕМ, что в БАЙТЕ ВСЕГО 8 БИТ (а не 9 и более!)
*/
//----------------------------------------------
void setup() {
// put your setup code here, to run once:
//устанавливаем режим OUTPUT
pinMode(latchPin, OUTPUT);
digitalWrite(latchPin, LOW);
pinMode(clockPin, OUTPUT);
digitalWrite(clockPin, LOW);
pinMode(dataPin, OUTPUT);
digitalWrite(dataPin, LOW);
pinMode(my_sens, INPUT_PULLUP);
point_ptr = 0; H_data_buf = 0; L_data_buf = 0;
outdata(); // начальная инициализация
}
void loop() {
// put your main code here, to run repeatedly:
if (!digitalRead(my_sens))
{
delay(20);
if (!digitalRead(my_sens))
{
// H_data_buf = pgm_read_byte_near(my_data+point_ptr); // соответствует исправленному в sketch_dec03b
H_data_buf = my_data[point_ptr];
point_ptr++;
// L_data_buf = pgm_read_byte_near(my_data+point_ptr); // соответствует исправленному в sketch_dec03b
L_data_buf = my_data[point_ptr];
point_ptr++;
// изменение point_ptr в соответствии с размером массива в ПЗУ
if (point_ptr==18)
{
point_ptr=0; // вернем указатель на начало массива
// (в текущем тесте из 18 байт последняя ячейка 17)
}
outdata();
byte flag=1;
while (flag)
{
if (digitalRead(my_sens))
{
delay(20);
if (digitalRead(my_sens))
{
flag=0;
}
}
}
}
}
delay(20);
}
//----------------------------------------------
void outdata()
{
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, lowByte(H_data_buf));
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, highByte(L_data_buf));
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,
// во втором - B01001100 и т.д. по количеству регистров
digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым
// устанавливая значения на выходах
delayMicroseconds(5);
digitalWrite(latchPin, LOW); // устанавливаем синхронизацию "защелки" на LOW
}http://img.radiokot.ru/files/20529/22h44tkfsd.GIF
как желательно бы КОТУ рисовать/расматривать.
Тренируйтесь.
Пы.Сы.
Редактор текста на сайте таки вносит некоторые некорректности с "длинными строками", что может привести к ошибкам при копипасте из текста в окне сообщения...
посему прилагаю сам исходник для анализа непосредственно в редакторе IDEбез лишних "сторонних искажений"
Последний раз редактировалось BOB51 Чт дек 05, 2019 18:32:30, всего редактировалось 2 раза.
Re: Прошу помощи с ардуино и моим проектом
Спасибо...А куда к ардуино кнопку подключать ?
Re: Прошу помощи с ардуино и моим проектом
На схеме постом выше - вывод D10 (уно,нано и аналогичные).
Да и в исходнике же тоже указано...
Я ж Вашу последнюю раскладку из исходника брал за основу...

Да и в исходнике же тоже указано...
Я ж Вашу последнюю раскладку из исходника брал за основу...
Re: Прошу помощи с ардуино и моим проектом
Скачал UnoArduSimV2.5.0.zip загрузил туда код, нажал кнопку выполнить
и всё вот так стоит и не двигается, так должно быть ? А работу кода посмотреть никак не получится?
и всё вот так стоит и не двигается, так должно быть ? А работу кода посмотреть никак не получится?
Re: Прошу помощи с ардуино и моим проектом
Я там только алгоритм отслеживал, принимая к сведению, что вывод в регистры правильно проводится (у симулятора нету внешних регистров того типа, что нам требуются).
А вот кнопку - вернее выключатель с резисторами (ибо трассировка была пошаговая) прицепить на 10й вывод надо.
Да и убрать лишнюю периферию в текущем сеансе.
Далее гоняем соответственно пожеланию.
Без переключения кнопы программа выдаст в регистры нулики и зависнет в ожидании нажатия кнопы.
Затем шажок по массиву и ожидание отпускания кнопы.
Затем снова ждет нажатие.
"пошаговое" исполнение кнопкой меню "шаг внутри" (с беленькой стрелкой).
http://img.radiokot.ru/files/20529/22h7pxc5yz.jpg
исходно переключатель в том положении, что на фотке (непрерывный простой в ожидании нажатия)
переключив его в 0 (красный индикатор на соответствующей линии унки заменится на синий)
прощелкиваем очередной цикл вывода и попадаем в "ожидание единицы" на D10
переводим переключатель в 1 и прощелкиваем программу в очередной цикл ожидания нажатия.
И так далее...
Если желание прсмотра с анимацией - тогда оставляем переключатель в положении 1, запускаем симуляцию в режиме "анимация выполнение" + "замедленная съемка" с помощью зеленой стрелки в строке иконок-менюшек ("выполнить") и пользуемся зеленой кнопой (push которая в поле макета) - нажать и подержать - исполнится очередной шаг прогона цикла вывода.

Вообще-то в каталоге симулятора лежат весьма подробные *.pdf файлы с описанием как с ним работать.
Внимательно читаемс!

Исправлена ошибка в закомментированной области - чтение элементов массива из ПЗУ (progmem) таки с тем progmem без конспекту... ТОСКНОВАТО...

А вот кнопку - вернее выключатель с резисторами (ибо трассировка была пошаговая) прицепить на 10й вывод надо.
Да и убрать лишнюю периферию в текущем сеансе.
Далее гоняем соответственно пожеланию.
Без переключения кнопы программа выдаст в регистры нулики и зависнет в ожидании нажатия кнопы.
Затем шажок по массиву и ожидание отпускания кнопы.
Затем снова ждет нажатие.
"пошаговое" исполнение кнопкой меню "шаг внутри" (с беленькой стрелкой).
http://img.radiokot.ru/files/20529/22h7pxc5yz.jpg
исходно переключатель в том положении, что на фотке (непрерывный простой в ожидании нажатия)
переключив его в 0 (красный индикатор на соответствующей линии унки заменится на синий)
прощелкиваем очередной цикл вывода и попадаем в "ожидание единицы" на D10
переводим переключатель в 1 и прощелкиваем программу в очередной цикл ожидания нажатия.
И так далее...
Если желание прсмотра с анимацией - тогда оставляем переключатель в положении 1, запускаем симуляцию в режиме "анимация выполнение" + "замедленная съемка" с помощью зеленой стрелки в строке иконок-менюшек ("выполнить") и пользуемся зеленой кнопой (push которая в поле макета) - нажать и подержать - исполнится очередной шаг прогона цикла вывода.
Вообще-то в каталоге симулятора лежат весьма подробные *.pdf файлы с описанием как с ним работать.
Внимательно читаемс!
Исправлена ошибка в закомментированной области - чтение элементов массива из ПЗУ (progmem) таки с тем progmem без конспекту... ТОСКНОВАТО...
Re: Прошу помощи с ардуино и моим проектом
BOB51, к сожалению схема не заработала на макетке. Прошивается без ошибок, при включении на светодиодах появляется какой то код, потом после загрузки микроконтроллера, то есть через секунду после подачи питания на схему, всё гаснет и на кнопку не реагирует. Кнопку включил как на схеме, одним концом к общему вторым к 10 пину на ардуине. Правда светодиоды у меня общий на минусе, но от этого ведь не может не работать, просто светить будут инверсно вшитому массиву, тоесть где 1 там не будет светить, там где ноль будет светить. Но тут вообще ничего не пашет и на кнопку не реагирует
Re: Прошу помощи с ардуино и моим проектом
Ой, Alex-DJ, поменьше бы вы пользовались форумом вместо здравого смысла.)
Удачи!
Удачи!
Re: Прошу помощи с ардуино и моим проектом
В прожке закралась ошибка невнимательности...
Компилятор оные не распознает.
Устранено тут собственно не подправлено было от старого двухбайтового значения апендикс.
Неверно(было):
void outdata()
{
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, lowByte(H_data_buf));
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, highByte(L_data_buf));
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,.....
а нужно (исправлено):
void outdata()
{
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, H_data_buf);
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, L_data_buf);
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,.....
Возможно еще некоторые "погрешности"/неоптимальности засели - это уже "на вылизывание" после которого можно начинающему совсем ничего не понять.

Компилятор оные не распознает.
Устранено тут собственно не подправлено было от старого двухбайтового значения апендикс.
Неверно(было):
void outdata()
{
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, lowByte(H_data_buf));
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, highByte(L_data_buf));
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,.....
а нужно (исправлено):
void outdata()
{
// начинаем "продавливать" данные по цепочке регистров, начиная с последнего
shiftOut(dataPin, clockPin, LSBFIRST, H_data_buf);
// передаем последовательно на dataPin - в первом регистре значение B01001100
shiftOut(dataPin, clockPin, LSBFIRST, L_data_buf);
// "продавливаем" данные в следующий регистр - в первом регистре B10000111,.....
Возможно еще некоторые "погрешности"/неоптимальности засели - это уже "на вылизывание" после которого можно начинающему совсем ничего не понять.
Re: Прошу помощи с ардуино и моим проектом
[uquote="BOB51",url="/forum/viewtopic.php?p=3750113#p3750113"]В прожке закралась ошибка невнимательности...
Компилятор оные не распознает.
Возможно еще некоторые "погрешности"
[/uquote]
И не только это, у вас на сдвиговых регистрах на 10 и 13 ноге общий, на 10 ногу должен идти плюс питания
Компилятор оные не распознает.
Возможно еще некоторые "погрешности"
И не только это, у вас на сдвиговых регистрах на 10 и 13 ноге общий, на 10 ногу должен идти плюс питания
Re: Прошу помощи с ардуино и моим проектом
Это точно - вот так верно:
http://img.radiokot.ru/files/20529/22hohx9i9g.GIF
зявнулсс... давненько те регистры не вынимал из шкапчика...
Собственно у меня линия сброса выводится на МК - а уточнить какой уровень
соответствует сбросу, а какой работе забыл.

А 13-я лапка - это разрешение выходного каскада - там и должен быть 0 для его активации.
Подашь 1 и на выходе будет Z-состояние (не нуль и не единичка - это для работы нескольких регистров на одну шину).

http://img.radiokot.ru/files/20529/22hohx9i9g.GIF
зявнулсс... давненько те регистры не вынимал из шкапчика...
Собственно у меня линия сброса выводится на МК - а уточнить какой уровень
соответствует сбросу, а какой работе забыл.
А 13-я лапка - это разрешение выходного каскада - там и должен быть 0 для его активации.
Подашь 1 и на выходе будет Z-состояние (не нуль и не единичка - это для работы нескольких регистров на одну шину).
-
Самсусамыч


