Помогите с созданием часов на светодиодных индикаторах
- Войдите на сайт для отправки комментариев
Чт, 03/07/2014 - 22:29
Здравствуйте, помогите пожалуйста написать код для моего проекта.
Мне нужно сделать шести разрядные часы (чч:мм:сс) на светодиодных индикаторах.
У меня есть модуль часов реального времени, индикаторы и сдвиговые регистры 74hc595.
Нужно что бы время которое идёт в модуле часов выводилось с помощью сдвиговых регистров на индикаторы.
а чем помочь то? код за Вас написать?
а чем помочь то? код за Вас написать?
Дадада и еще мне ключи от квартиры с деньгами.
У тебя телефон не отвечает.
У меня нет телефона, я бедно живу...
а чем помочь то? код за Вас написать?
Если мне кто нибудь код напишет, буду оочень благодарен, а вообще так как я в программировании полный ноль, я просто не могу понять как из модуля часов вытащить информацию и заставить светиться нужные цифры на индикаторах
Начните со схемы:
потом опеределите все цифры в массив
а потом уже работать с часами ....
DS = MOSI
SH_CP = SCK
ST_SP = "синхронизация кадров" - после отправки всех циферок
Помогите с скетчем. Есть Ардуино Уно, часы реального времени DS3231 по I2C и 6 семисегментных индикаторов с общим анодом. Индикаторы подключены по SPI через каскад сдвиговых регистров 74HC595. Часы настроил, время выводится через монитор последовательного порта. На индикаторы тоже могу выводить любые цифры, а вот как поженить эти два скетча знаний не хватает, да и гугл предлагает с отдельно выведенными каналами общих анодов. У меня плата уже спаяна с общей плюсовой шиной для всех разрядов и всех регистров.
Скетч для индикаторов
Для часов нашел в нете такой
Но этот выводит данные только на монитор последовательного порта, не зря там же Serial print.
Так понимаю что для выведения на индикаторы нужно присвоить значениям, считанных с DS3231, -> byte number
то есть что-то типа
if (hour = 1)
hour=number [0],[1]
потом считываем с модуля RTC
serial read часы, минуты, секунды.
и выводим на индикатор
shiftOut(dataPin, clockPin, LSBFIRST, hour,minute,second);
на фото скетч под индикаторы с кучей shiftOut-ов и delay в секунду
Здравствуйте, помогите пожалуйста написать код для моего проекта.
Мне нужно сделать шести разрядные часы (чч:мм:сс) на светодиодных индикаторах.
Если же Вы хотите научиться что-то делать на Ардуино, научитесь для начала хотя бы немного программировать.
Если Вам нужны часы, дешевле будет их купить. Готовые.
Если же Вы хотите научиться что-то делать на Ардуино, научитесь для начала хотя бы немного программировать.
Золотые слова. Орешек знаний тверд, но все же мы не привыкли отступать..... Читай интернет, пытайся понять, пробовай сделать. Вот в чем интерес. Если не интересно, то действительно - купи готовые. Я купил. Такое говно... За месяц на несколько минут уходят (это я про какой-то конструктор). А вот часы на основе модуля DS32...и что-то там такое за месяц всего на 1 секунду ушли (проверяю по интернету, типа атомные часы с секундами), да еще и температуру показывают.
разбираю потихоньку код но непонятка not declared in this scope постоянно вылезает.
Даже для h1 которого задекларировал.
Я вот так делал.
Индикатор на MAX7219, либа LedControl
Опять 25 Ж:(
тот же самый
Вы описали second, minute, hour; в строке 41, а исользуете в строке 36. Нет, уж дорогой, "утром стулья .." ой ... сначала описываем, а потом используем. Перенесите строку 41 в начало функции loop и будет Вам счастье со строками ошибок 4,5,6.
Едем дальше. minute, hour; описаны внутри фигурных скобок (строки 35 и 43), значит и использовать их можно только внутри. Вы же пытаетесь использовать их после закрывающей скобки в строках 45-50. Уберите нафиг фигурные скобки (удалите строки 35 и 43) и будет Вам счастье со строками ошибок 8-10
Строки сообщений 11-16 некритичны, но они предупреждают, что Вы на кой-то чёрт описали переменные h1, h2, m1, m2, s1, s2 в строках (45-50) и после этого ни разу ими не воспользовались. Зачем было описывать? А всё потому, что Вы описали их внутри фигурных скобок (строки 33 и 51) а использовать пытаетесь после закрытия скобки в строках 54-59. Рецепт - убираем нахрен строки 33 и 51 и строки диагностики с 11 по 22 исчезают в тумане.
Осталась одна строка ошибок - 7ая. Она говорит, что в библиотеке нет такой функции (а если и есть, то она метод и в лоб не вызывается). Тут я не в курсе. т.к. у меня нет этой библиотеки. Смотрите её описание внимательно.
Спасибо за ликбез. Почти разобрался.
Ошибок стало меньше
Ошибок стало меньше
Останется только ошибка 4, но я уже говорил, что Вы неправильно используете функцию библиотеки. У меня её (библиотеки) нет, поэтому я не могу посмотреть что там и как, и здесь помочь не могу. Смотрите описание библиотеки.
32-я строка:
Serial.read;
Кто-то пытается прочитать что-то из Serial, но забыл указать переменную, в которую читать и скобки. Это не паскаль, скобки надо в любом случае ставить.
Библиотека DS3231.h
и DS3231.cpp
Ну, вот Вы код скопировали, а посмотреть в него? Смотрели? В строке 80 описан конструктор
Видите, что у него ДВА параметра data_pin и sclk_pin? Что они означают, я не знаю - описания нет, но их два и это факт! Так и передавйте ему два параметра, а Вы что делаете? В строке 33 Вы вызываете его с тремя параметрами, причём других типов. Вызывайте правильно - передавайте два параметра типа "беззнаковый байт" и, по крайней мере, компилятор от Вас отстанет.
Остаётся загадкой, зачем либе надо знать, на каких пинах TWI висит? Оно там программно эмулируется что ли?
32-я строка:
Serial.read;
Кто-то пытается прочитать что-то из Serial, но забыл указать переменную, в которую читать и скобки
По идее Serial.read и Wire.requestFrom выполняют одно и то же действие. Но если убрать Serial.read и DS3231 time(&second, &minute, &hour); то int h1 = hour() / 10;
error: 'hour' cannot be used as a function
У меня такое впечатление что автор использует библиотеку "Time" http://playground.arduino.cc/code/time
Но я не вижу ее инициализации.
Вставьте в самом начале скетча строку:
Ну и конечно, это библиотека должна быть в папке "libraries".
Вставил библиотеку "Time"
Возникают ошибки
В строках 32 и 33 полное отсутствие логики.
Нету запуска библиотеки
Нужна переменная для хранения считанного времени:
Время брать не с библиотеки Time, а с этой. Т.е. вместо функции "Hour()" должно быть "t.hour"
В общем, как в этом примере:
В строках 32 и 33 полное отсутствие логики.
Нету запуска библиотеки
гыыыыы... (достал платочек и вытираю слезы умиления) правда нет запуска библиотеки? тоесть вы серьезно советуете дописать строчку инициализации часов и получить еще одну ошибку при компиляции?
там самой библиотеки нет! о чем оно и сообщает...
ее физически нет в папке библиотек
Та хочется верить раз чел выложил код библиотеки, то она у него есть и находится в нужном месте. Глориус, запусти пример из библиотеки и поделить результатом.
Update: Короче, вот так этот код должен выглядеть (у меня на 1.0.6 ошибок не дает):
Запустил код компиляция зависла на половине. Такая же история с скетчами из папки Examples библиотеки.
Ну, это уже не вопрос кода, тут нужно пошаманить:
* перезагрузить комп
* переустановить ардуино
* установить другую ардуино (1.0.6)
* установить совсем старую ардуино (0022)
* стучать в бубен наяливая круги вокруг ардуино...и тд
Но скетч скомпилировался :)
Ты с типами определиь уже, и ошибок не будет.