Arduino DUE - проблема с I2C ?
- Войдите на сайт для отправки комментариев
Пнд, 29/07/2013 - 20:28
Добрый вечер, приобрел по случаю DUE и пару датчиков (давление, часы и т.д.). На Мега и Дуемалинове все работает прекрасно, на DUE - глухо и печально. Порылся на офф сайте- ребята говорят что подтягиващие резаки по 1.5к вместо 10к. на SDA и SCL. Монтаж у меня совсем мелкий , пока не нашел их и не выковыривал. Запаралелил свои на 10К - подтянув их к +. Что -то поменялось, но результат не радует. Шина вроде как жива. Программа для сканирования шины I2C - на меге и уно прекрасно все находит, на DUE молчит. Дескать ничего не найдено. Как бы мать их так те часы и тепературу, DS18b20 прикрутил и все работает, но хочется знать правду. С чего начать?
Вопрос сформулируйте. И опишите как подключаете датчики.
начать нужно с правильных библиотек :)
Вопрос сформулируйте. И опишите как подключаете датчики.
Максим часы не будут работать с той же библиотекой что и для AVR.
Вот. Максим подтянулся, дело пойдет.
Вот такой модуль:
http://arduino.ru/forum/apparatnye-voprosy/podklyuchenie-tiny-rtc-i2c - прекрасно работает на уно меге и т.д.
на DUE с теми же библиотеками не пашет.
http://arduino.ru/forum/apparatnye-voprosy/tinyrtc-v11-na-ds1307z- этот модуль так же работает хорошо на мега-уно.
http://arduino.ru/forum/apparatnye-voprosy/podklyuchenie-barometra-bmp08... барометр практически такой же, как на фото, работает везде кроме DUE.
IDE 1.5.2 библиотеки вроде последние что нарыл. По крайней мере на RTC взял от создателя UTFT с его сайта.
Где-то на форуме читал что-то вероятно не так с самой библиотекой Wire, что-то там внутри нужно заменить на что -то, но, пока не смог отыскать тот топик.
https://github.com/oskarirauta/RTCdue
тоже самое касается и барометра.. найдите библиотеку заточеную под дуе...
Благодарю. Попробовал, работает но криво. От чего -то 2019 год показывает и время не как на компе. Но вроде работает.
Попробую в ручно режиме выставить верное время.
По барометру не нашел пока ничего подходящего. Это теперь купи за 70 уе цацку и пиши под нее библиотеки, потому что криворукие инженеры просчитались, или так и было задумано?
По барометру не нашел пока ничего подходящего. Это теперь купи за 70 уе цацку и пиши под нее библиотеки, потому что криворукие инженеры просчитались, или так и было задумано?
Инженеры никуда не просчитывались... не ровняйте ардуины с дуе..
Утрируя..
ардуины это по сути очень продвинутые микроконтролеры... к которым прилепили интерпретатор С...
а дуе это по сути микропроцесор к которому прибацали кучу выводов как у микроконтролера...
и их попытка прикрутить ДУе к старому IDE вообще можно сказать увенчалась успехом..
а библиотеки правьте и будет вам счастье...
Правте... я могу турбину на мотоцикл установить и на стенде выдвить последнее из движка. А править библиотеки пока не силен.
По делу,
Что нужно вставить в эту строку, дабы в ручную забить время, дату. Пробовал и строкой и через запятую, глядя на сишный код самой либы. Ругается, сволочь...
эта строчка вставляет время с вашего компа :) на момент обработки кода асемблером...
Я понимаю, я хочу сам устновить время, в каком формате (какой командой) мне выполнить это?
компилятор ругается.
Покажите что за ошибка вылетает с этой строчкой
rtc.adjust(DateTime(2013,07,29, 23,52,00));
Виноват. Добавил вкладками сишные файлы ,что бы понять как менять дату, ругалось на редефинишен. В болкноте просто все слитно было. Убрал файлы из папки скетча ,все гуд. Но время один хер, 2010 го пишет. Вынимаю питание- сразу меняется на 2000.
Подключаю обратно +5 (+3.3)- пишет 2010, хотя уже ведь скотине явно указал 2013 и закомпилилось и залилось. Паскуда....
и вот еще, ознакомтесь:
http://forum.arduino.cc/index.php?topic=174862.0
и вот еще, ознакомтесь:
http://forum.arduino.cc/index.php?topic=174862.0
с этим бредом я уже знаком, выглядит как два школьника расказывают друг другу за какой конец нужно держать паяльник...
как бы вам обьяснить.. SCL и SDA это прямые выводы с процесора, там нет ни каких резисторов которые можно было бы отпаять и припаять побольше :)
библиотеки никто кроме вас не доработает, ибо плата не дешовая ( относительно той же мега2560), и не настолько пока массовая что бы кто то заморачивался
И кстати библиотека нормально работает. Сам ей пользуюсь..
тоже самое и с настройкой
А про турбину на мотоцикл гыгы, вы таки делаете мне смешно... Я могу дом построить за пару месяцев ( начиная с ровной земли и заканчивая установкой мебели), могу двигатель в машине перебрать часов за 6-8, могу торт испеч со всякими фенечками и украшениями, я могу долго продолжать список, ибо жизнь по разному разворачивала...
Все что было нужно мне, я уже поправил. В частности библиотека по этим часам... Увижу что вам нужно что то еще из того что уже есть у меня, поделюсь! А править библиотеки специально для вас, как бы это сказать повежливей, зачем это мне?
PS...Вспомнилась одна клиентка, она подошла более творчески.. Дамочка не бедствовала, но тем неменее..
-Я тут колбасу копчу, давай я тебе не деньгами а колбасы накопчу!
ну то что у меня было лицо примерно так О.о, у меня возник только один вопрос ( некасаясь того что колбасы той пары тон пришлось бы коптить)
-А вашу колбасу где принимают к оплате? Могу я ей за бензин заплатить? Или может ее в оплату за комунальные услуги принимают?
. SCL и SDA это прямые выводы с процесора, там нет ни каких резисторов которые можно было бы отпаять и припаять побольше :)
Не соглашусь с Вами, на схеме четко видно два резака по по 1к5 в подтяжке к питанию 3.3в. На меге к примеру, там стоят по 10к. Отсюда и вывод, мол замени и все будет, это подтверждает и некий юзер который отпаивает их
Если есть возможность, выложить правленую либу, буду благодарен. Та, что Вы привели изначально- не компилит даже собственные примеры.
. SCL и SDA это прямые выводы с процесора, там нет ни каких резисторов которые можно было бы отпаять и припаять побольше :)
Не соглашусь с Вами, на схеме четко видно два резака по по 1к5 в подтяжке к питанию 3.3в. На меге к примеру, там стоят по 10к. Отсюда и вывод, мол замени и все будет, это подтверждает и некий юзер который отпаивает их
Если есть возможность, выложить правленую либу, буду благодарен. Та, что Вы привели изначально- не компилит даже собственные примеры.
резисторы нашел. они их там хитро на принципиальной схеме отрисовали...
библиотека работает нормально без всяких перепаек... если у вас выдает ошибки.. то озвучте какие ошибки выдает.. там в принципе только в одном примере ошибка. имя библиотеки не поменяли...
https://github.com/Puhlyaviy/RTCdue
Спасибо за либу, но, к сожалению ничего не изменилось. Может у меня с DUE (Freaduino) косяк? Проверил RTC на меге- рабоатет нормально.
У вас DUE или другой контроллер?
Дуе у меня, оригинальная.
В примерах есть софтерные часы на базе это библиотеки..
попробуйте пример для начала..
Вот в нем и ошибка компиллятора:
In file included from softrtc.pde:3:
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:10: error: expected ')' before 't'
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:11: error: expected ')' before 'year'
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:14: error: 'uint16_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:15: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:16: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:17: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:18: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:19: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:20: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:25: error: 'uint32_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:28: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:34: error: 'uint8_t' does not name a type
I:\Arduino\DUE\arduino-1.5.2\libraries\RTClib/RTClib.h:36: error: 'uint8_t' does not name a type
softrtc.pde: In function 'void loop()':
softrtc:16: error: 'class DateTime' has no member named 'day'
softrtc:18: error: 'class DateTime' has no member named 'month'
softrtc:20: error: 'class DateTime' has no member named 'year'
softrtc:22: error: 'class DateTime' has no member named 'hour'
softrtc:24: error: 'class DateTime' has no member named 'minute'
softrtc:26: error: 'class DateTime' has no member named 'second'
softrtc:30: error: 'class DateTime' has no member named 'unixtime'
softrtc:33: error: 'class DateTime' has no member named 'unixtime'
softrtc:36: error: 'class DateTime' has no member named 'day'
softrtc:38: error: 'class DateTime' has no member named 'month'
softrtc:40: error: 'class DateTime' has no member named 'year'
softrtc:42: error: 'class DateTime' has no member named 'hour'
softrtc:44: error: 'class DateTime' has no member named 'minute'
softrtc:46: error: 'class DateTime' has no member named 'second'
сравните ради интереса
https://github.com/Puhlyaviy/RTCdue/blob/master/examples/softrtc/softrtc.pde
я даже скажу где. стрчока номер 3. с тем что у вас.
Скопировал- вставил- таже ошибка. ДА и хер на него тот RTC. Буду ждать офф библиотек. Почему народ так неохотно на DUE переходит?
Именно поэтому.
Мда... видимо не всем нужно 33 датчка в реалтайме на 7 дюймах LCD :))
Всем спасибо за участие.
странно это все... у меня все нормально работает.. причем софтерный пример вообще работает без микросхемы часов.. он опирается на милис процесора..
ожидание ОФФ библиотек клевое занятие.. особенно если учесть что сообщество пишет библиотеки.. а производителю вообще начхать....
да, как вариант могу запаковать 150% работающую библиотеку со своего жесткого диска и послать вам... если и она будет выдавать ошибки, то я уже не знаю... останется только порекомендовать вам дольше висеть на турнике, что бы руки выпрямлялись :)
Если не сложно, конечно, буду премноо благодарен.
К слову, одна из библиотек, работает и у меня без самого модуля, и я с легкостью могу корректировать время программно. отсюда вопрос, в папке libraries куча версий библиотеки RTC. Что бы не путаться самому, я папки именую по типу- RTCDue, RTCDu, RTC, DS1370, RTClib и т.д. По факту, в скетче одна и таже строка:
#include <Wire.h>
#include "RTClib.h"
может ли компиллятор запутаться и тем самым вводить меня в заблуждение? То есть, надо ли мне грохать похожую библиотеку ,перед испытанием следующей ,якобы работающей у других пользователей? Может тут собака порылся?
а ну тгда понятно откуда у вас куча проблем...
1.уберите лишние библиотеки из папки библиотек
2. RTCdue не нужна библиотека wire
она и без нее хорошо работает..
Хз. Короче забил я на часы. Мать их так.
Хз. Короче забил я на часы. Мать их так.
дык там со всеми прибамбасами такая песня :) любую фиговину пытаетесь прилепить в к ДУЕ и имеете проблемы с библиотеками:)
Вот и я приобрел Arduino Due (не оригинал). У кого есть ссылки на работающие библиотеки для bmp085, DHT22, DS3231 для DUE? Попробовал я и https://github.com/oskarirauta/RTCdue - не работает у меня. Софтерные часы на базе этой библиотеки работают. Кроме того пробовал библиотеки для bmp085 http://code.google.com/p/bmp085/downloads/list и почитал и исправил для DUE вот тут http://code.google.com/p/bmp085/issues/detail?id=1 все равно не работает ничего (. Такое ощущение, что что-то с шиной I2C. Читал на форумах зарубежных - тоже у людей проблема с I2C на DUE. Какие мысли? Может кто-то решил проблему?
Такое ощущение, что что-то с шиной I2C. Читал на форумах зарубежных - тоже у людей проблема с I2C на DUE. Какие мысли? Может кто-то решил проблему?
мыться нужно что бы ощущения не мучили... нормально все с шиной. работает она как обычно на 20 и 21 пине.. часы железные прикручивать никакого смысла нет..
dht22 тут уже товарищ выкладывал рабочий скриптик. не библиотека. но работает.
Спасибо. Буду смотреть.
Почему часы железные прикручивать никакого смысла нет? В железных часах есть смысл - они держат время в случае пропадания питания на arduino.
Почему часы железные прикручивать никакого смысла нет? В железных часах есть смысл - они держат время в случае пропадания питания на arduino.
потому что ваша дуе один хрен куда то подключена куда она стучит о своем состоянии. а попутно при инициализации стянуть время не составляет проблем. батарейку к ней прикрутите на всякий случай
по поводу шины i2c. на стандартных контактах 20 и 21 я так и не добился ничего. Смотрел анализатором, там даже запросы не шли на RTC. подключил к SCL1 и SDA1 , всё заработало. во всяком случае RTC я запустилось сразу. ну и естественно в параметрах инициализации надо указывать
Wire1.begin();
Камрады! Есть ли у кого рабочая либа I2C или ссылка на нее, в которой возможна безстоповая передача от мастера? Все, что ищется написано для AVR, для кортекса так и не нашел :( Иными словами нужно как в http://www.dsscircuits.com/articles/86-articles/66-arduino-i2c-master-library, только для DUE. Стандартная Wire не позволяет отчего-то так делать, хоть там и заявлено, что можно.
Уважаемый AmLimit допилил библиотеку на DUE! У кого раньше были проблемы с устройствами, которые требуют повторный старт после записи модифицируйте либу, как написано в https://github.com/arduino/Arduino/issues/2428
Читал где-то как один товарищ тоже подключал часы. Тоже не работали. Потом он обнаружил интересную вещь: оставил провода SDA, SCL и GND, а VCC отключил. И всё заработало.
это называется паразитное питание...
я то-же пару дней с RTC как в сабже возюкался... там могут быть всего несколько заморочек
1. не инициализируется шина wire (или не на тот порт, что важно!!! особенно когда их несколько), в моем коде параметр reg_Wire = 0, но может быть и другим, тогда ноги будут другие!!!
2. перепутаны контакты SCL SDA, шина работает, но данные - бред...
3. по сколько шина заточена на биты (да еще и на непрвильные) - библиотека должна быть нормальная...
банально вот код который должен работать без библиотек:
Ответ:
Мне надо прокладку ГБЦ поменть. Можно обращаться?