Запись данных в МК
- Войдите на сайт для отправки комментариев
Вс, 10/03/2013 - 10:43
Приветствую вас, Друзья!
Возможно ли реализовать следующее:
необходимо на обьекте установить ловушку на базе МК, которая будет контролировать срабатывание реле, и выводить его состояние в сериал монитор. Проблема в том, что ноутбук оставлять там не хочется. Можно ли записывать в память МК события, а потом приехав подключить ноут и считать логи?
Приветствую вас, Друзья!
Возможно ли реализовать следующее:
необходимо на обьекте установить ловушку на базе МК, которая будет контролировать срабатывание реле, и выводить его состояние в сериал монитор. Проблема в том, что ноутбук оставлять там не хочется. Можно ли записывать в память МК события, а потом приехав подключить ноут и считать логи?
Можно подключить SD карту.
http://arduino.ru/forum/programmirovanie/sd-karta
А что, идея.. Спасибо ))
даа, почитал за эту тему... для меня это не подьёмно..(((
Так же если вам нужна привязка к времени, вам понадобится таймер реального времени, например DS1307.
Не подьемно что?
Стоимость?
да, время обязательно. Дело не в стоимости, а сложности.
Подключил SD карту, примеры работают. Не могу допереть как изменить код под свои нужды. Например имеется 8 входов, на всех лог 0, должно отображатся примерно так - 0 0 0 0 0 0 0 0
вдруг на одном из входов появилось 5 В- 0 0 0 0 0 0 0 1
вдруг ещё на оном - 0 0 0 0 1 0 0 1, и т.д.
то есть программа постоянно опрашивает входы, и при изменении их состояния записывает на карту их текущее, извините, состояние. Сам програмировать не умею, надеюсь на вашу помощь))
И?
И?
Я так понимаю нужно изменить эту часть кода из примера
не понимаю как сделать
В приведенном участке кода обрабатываются не 8 цифровых входов (а с каких еще получать логические уровни?), а 4 аналоговых.
И на выводе должно получаться что-то вроде
125,543,1023,0 - и уж никак не 0 0 0 0 0 0 0 0
Поэтому можно повторить вопрос Максима - И?
В приведенном участке кода обрабатываются не 8 цифровых входов (а с каких еще получать логические уровни?), а 4 аналоговых.
И на выводе должно получаться что-то вроде
125,543,1023,0 - и уж никак не 0 0 0 0 0 0 0 0
Поэтому можно повторить вопрос Максима - И?
на данный момент код выглядит так (подглядел у Джереми Блюма)
сейчас проблема в том, что данные в виде 0 0 0 0 0 0 0 0 записываются в одну ячейку .csv файла, а не каждая позиция в своё поле. А также вывод происходит постоянно, а нужно, только при изменении состояния какого либо вывода. А так остальное работает и записывает. жду ваших "И"
И не забываем про подтяжку выводов иначе, когда вывод никуда не подключен будете записывать в файл помехи.
Попробывал Ваш код. Сначала компилятор ругнулся 'pin1_level_prev' was not declared in this scope. Я добавил строчку
и загрузил, но воз и ныне там. Проблемы остались прежние
Куда вы ее добавили?
в loop. C последним вариантом также. За пару секунд наколбасило цифирек на 7 kb, и все ряды в одни ячейки
вместо запятой поставил точку с запятой
начал раскидывать по ячейкам)))
В общем, не знаю что у вас там "колбасит", но если вывод подтянут и переменная pin1_level_prev объявлена как static или глобально, то запись на карту будет производиться только при измении сигнала на выводе и никак иначе.
извиняюсь, не подтянуто.. на данный момент нечем, а можно напрямую pin1 на землю для проверочки?
Можно и на землю GND и на питание +5V
хм.. заработало.. но есть странность. Подключил пин на землю через резик 10кОм. Я так думал, что дигиталРид прочитает лог 0, а у меня на оборот 1.. при подтяжке на плюс, тоже выдаёт единицу..
Такого не бывает. Значит что-то не так делаете.
попробовал заменить МК, на новом при заливке пишет avrdude stk500_getsync() not in sync resp=0x00
и ваще ничего неработает. возвращаю обратно старый, всё как прежде...
ребятушки, что делать то? сбился с ног.. весь гугл перелопатил.На "родную" атмегу 328р прошивается любой код, а на новые (2 штуки) не хочет.. выдаёт:
Binary sketch size: 1 084 bytes (of a 32 256 byte maximum)
D:\masterskaja\arduino-1.0.2\hardware/tools/avr/bin/avrdude -CD:\masterskaja\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P\\.\COM3 -b115200 -D -Uflash:w:C:\Users\olega\AppData\Local\Temp\build1342245560610073067.tmp\Blink.cpp.hex:i
avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "D:\masterskaja\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf"
Using Port : \\.\COM3
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude done. Thank you.
Прям уж весь гугл.... В поиске по сайту набираете "bootloader".
Максим, набрал, тёмный лес..((
из всего прочитанного, я так понял у меня этот бутлоадер живее всех живых
Ну так тогда в чем проблема? Значит у вас все работает.
У вас в двух МК (которые не шьются) не прошит bootloader.
теперь дошло, спасибо
вычитал, что ДС1307 считает только с точностью до секунды.. подстава.. в моём задании необходима точность до 1 мс, чем можно заменить микросхему? может существуют какие-то програмные ходы?
необходимо исследовать импульсы такого вида
чем можно заменить микросхему?
DS3232 и вообще их серия DS32
чем можно заменить микросхему?
DS3232 и вообще их серия DS32
ай я яй.. уже изготовил печатку, в серии ДС32 не нашел подходящего под дип8, с выводами соответствующими с 1307