Подключение BMP180 к Arduino Micro
- Войдите на сайт для отправки комментариев
Всем привет!
Начинаю изучать платформу ардуино, но увы пока нет опыта в схемотехнике. Решил попробовать подключить железку GY-68 (BMP180) к Arduino Micro. Перепробовал все библиотеки и примеры скетчей, которые нашел, но увы отклика от датчика не могу получить. Подскажите как правильно это провернуть.
Датчик такой: http://www.arduiner.com/en/pressione/2328-bmp180-barometric-pressure-tem...
Подключаем к микре SDA - 2, SCL - 3, как указано здесь https://learn.sparkfun.com/tutorials/bmp180-barometric-pressure-sensor-h...
Пробовал: SFE_BMP180, Adafruit_BMP085. скетчи экзампловые. Симптом один и тот же - на begin() подвисает, который потом возвращает 0. Подключал VCC на 5V и на 3.3V . Датчики разные, на случай если спалю 5В, так как в половине статей строго указано что он умирает с 5 вольтами, а тут https://www.youtube.com/watch?v=_Tke-bhk1gk, свободно подключается и работает к 5 VCC.
Не понятно то ли я уже все спалил и датчики не работоспособны, то ли я не верно подключаю, то ли есть еще какие-то важные вещи о которых я не знаю пока что.
Вопросы:
1) Можно ли протестировать датчик на предмет работоспособности?
2) Можно ли его подключать к VCC 5V? Если да, то допускается 4.8 или строго 5? питание беру с VCC ардуины, которая подключена к USB, а там 4.8 (судя по вольтметру).
3) В чем еще может быть проблемма? Может указанные либы работают с другими ножками?
Дополнение: датчик куплен тут: https://iarduino.ru/shop/Sensory-Datchiki/barometr-gy-68-datchik-atmosfe...
в описании написано: Питание: 1.8-3.6V, а в ссылке выше - 5V, хоть и внешне они одинаковы. Возможно существуют два вида - на 5В и на 3.6В, и я спалил тот, который подключал к ноге VCC микры, но остается второй датчик, который всегда подключался к 3.3
В поисковой строке форума набери "BMP085, BMP180, метеостанции " и почитай посты.
Вроде все прочитал - подключаю как указано. Может есть способ пропинговать датчик изолировано?
Нет такого способа. Проверь для начала где на плате I2C подключи чтонибудь другое, (дисплей) и рины A5 - SCL, A4 - SDA возможно.
Пробовал подключать ЖК 16x2 через переходник I2C - не очень устойчиво, но работает. Как миниммум данные переливает и на дисплей что-то выводит. Пока есть подозрение (если отбросить идею что датчики погорели) что либо адрес не тот, либо действительно управляющие ноги не те. Попробую через Wire достучаться
Если датчик именно такой, как на картинке, то он будет работать при подаче питания от 1.8в до 6в. Маленький черный трехконтактный чип на плате (обычно с маркировкой 662) -- это стабилизатор, который позаботится, чтобы напряжение на датчике не было превышено.
Круто! Да, обвязка четырехконтактная, в большинстве статей указано что действительно стабилизатор уже встроен.
Но увы к сожалению не смог найти как выставить на нем адрес I2C. Вижу какие-то перемычки, но подтверждения не нашел что именно они управляют адресом на который будет датчик отзываться, более того в большинстве примеров при инициализации либы он не указывается, то есть не понятно по какому адресу ардуино будет стучаться к датчику.
Попробуй сканером I2C, посмотреть какой у него адрес
http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit?page=1
70 пост
Круто! Да, обвязка четырехконтактная, в большинстве статей указано что действительно стабилизатор уже встроен.
Но увы к сожалению не смог найти как выставить на нем адрес I2C. Вижу какие-то перемычки, но подтверждения не нашел что именно они управляют адресом на который будет датчик отзываться, более того в большинстве примеров при инициализации либы он не указывается, то есть не понятно по какому адресу ардуино будет стучаться к датчику.
значит ты плохо читал посты: адрес этого датчика зашит на заводе и ни как не меняется, у всех BMPшек он одинаковый.
Здорово!
Действительно сразу нашел по намеку https://www.adafruit.com/products/1603
"This board/chip uses I2C 7-bit address 0x77." - половину вопросов снимается
Спасибо
Здорово!
Действительно сразу нашел по намеку https://www.adafruit.com/products/1603
"This board/chip uses I2C 7-bit address 0x77." - половину вопросов снимается
Так взлетело, али нет?
Попробовал сканер I2C, поток вешается на Wire.endTransmission(), уходит и не возвращается. пины проверил - если подключать LCD, то все нормально, то есть Wire работает с этими ногами
[code]
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0) << Тут
...
[/code]
причем подвисает даже с полностью отключенным датчиком
endTransmission -- это и есть собственно передача по шине. все остальное лишь запись сценария.
Загрузи этот скетч, посмотри что будет в сериале.
Попробую, но предполагаю, что повиснет на
error = Wire.endTransmission();, как и выше
, проблемма же в том, что он вообще не возвращается, а не то что ошибка какая-то.Наверно еще попробую mini pro прошить, может сам arduino micro виноват... Дело в том, что если вообще датчики не подключать, то теоретически код выше (который пингует все адреса) должен все опрашивать и возвращать 0 устройств. В моем случае почему-то это происходит не стабильно, то подвисает (причем на разных адресах), то полностью проходит... короче не понятно
Попробуйте поставить внешние резисторы подтяжки шины, судя по вашему описанию ловятся помехи, по питанию желательно поставить дополнительно конденсаторы: электролит и керамику, проверить источник питания на напряжение и пульсацию под нагрузкой.
Спасибо! Очень похоже на правду...
подтянул SDA/SCL на VCC через 4.7kOm все равно симптомы остались, прошил Arduino Mini Pro той же прошивкой - успешно подключился даже без резисторов подтяжки. Вероятно у меня Arduino Micro не совсем исправный ...
Ок