mcp23017 + mega
- Войдите на сайт для отправки комментариев
Ср, 18/05/2022 - 02:27
проблему имею.
не могу никак подключить кнопку через mcp
#include <Wire.h> #include "Adafruit_MCP23017.h" Adafruit_MCP23017 mcp; Adafruit_MCP23017 mcp2; void setup() { Wire.begin(); Serial.begin(9600); Serial.println(""); Serial.println("Scanning..."); byte error, address, address2; byte addr = 0; int nDevices = 0; for(address = 8; address < 127; address++ ){ Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0){ Serial.print("I2C device found at address 0x"); if (address<16) { Serial.print("0"); } Serial.print(address,HEX); Serial.println(" !"); addr = address; nDevices++; } else if (error==4) { Serial.print("Unknow error at address 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("No I2C devices found\n"); else Serial.println("done\n"); mcp.begin(0x22); // use default address 0 mcp.pinMode(8, INPUT); mcp.pullUp(8, LOW); // turn on a 100K pullup internally //mcp.digitalWrite(8, HIGH); pinMode(13, OUTPUT); // use the p13 LED as debugging pinMode(11, INPUT_PULLUP); mcp2.begin(0x24); mcp2.pinMode(5, OUTPUT); mcp2.digitalWrite(5, HIGH); } void loop() { // The LED will 'echo' the button digitalWrite(13, !mcp.digitalRead(8)); /*if (!mcp.digitalRead(8)) { Serial.println("pressed"); delay(250); }*/ if (!digitalRead(11)) { Serial.println("pressed2"); delay(250); } }
всякие опыты ставил.
кнопка на ардуинке работает. через MCP - никак. и напряжения на вывод не могу сделать.
подключение MCP
SDA SCL - с меги + резисторы 10к к "+"
питание по схеме, 4,85 вольта идет + вывод питание на ногу ресет
адреса выставляю + и - на ноги а0-а2
В 47 строке HIGH вместо LOW
Где вы взяли эту библиотеку ? Может надо скачать самую свежую ?
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/examples/mcp23xxx_button/mcp23xxx_button.ino
В 47 строке HIGH вместо LOW
по всякому пробовал
Значит пробуй другую библиотеку (как советовали выше): https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library
по всякому пробовал
теперь попробуй подумать...
Даже страшно...
Что там такое на этой Меге собрано, что не хватает портов ???
эта библиотека заработала. но. если питать плату от стороннего бп и подключится к порту по юсб - то не работает.
при запуске пишет про 2-3 нажатия кнопки, и перестает реагировать.
очень страшно...
2 LCD на I2C + 3 MCP23017
3 дисплея SPI
порядка 20 датчиков температуры, штук 20 светодиодов
кнопки....
3 датчика расстояния
по всякому пробовал
теперь попробуй подумать...
как и чем?
Где вы взяли эту библиотеку ? Может надо скачать самую свежую ?
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/examples/mcp23xxx_button/mcp23xxx_button.ino
вчера пробовал с ней.
не пошло из-за проблем при подключении БП
и сейчас то же самое
очень страшно...
2 LCD на I2C + 3 MCP23017
3 дисплея SPI
порядка 20 датчиков температуры, штук 20 светодиодов
кнопки....
3 датчика расстояния
Все это на мегу влезет без MCP23017.
5-6пинов на светодиоды, один пин на датчики температуры (18b20), на кнопки 4-5 пинов(в зависимости от количества), 2пина дисплеи i2c, 7 пинов на дисплеи spi, 4 пина на датчики расстояния.
Может где то ошибся, но не на много.
70 пинов Меги хватит с запасом.
Где вы взяли эту библиотеку ? Может надо скачать самую свежую ?
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/examples/mcp23xxx_button/mcp23xxx_button.ino
итого, без блока питания отдельного - всё чётко, при питании расширителей и меги от БП + подключение к порту по ЮСБ, сразу идет так. тут не знаю, что предположить.
и на кнопке нет напряжения при этом.
То есть код виноват в том что БП сделан из говна ???
То есть код виноват в том что БП сделан из говна ???
попробуй раскрыть свою гениальную гипотезу
очень страшно...
2 LCD на I2C + 3 MCP23017
3 дисплея SPI
порядка 20 датчиков температуры, штук 20 светодиодов
кнопки....
3 датчика расстояния
датчики температуры - термопары MAX6675
Тем более.
Они ж по SPI подключаются.
точно. спасибо за подсказку. а то я на каждый по 3 провода выделял.
Вот. А дебил почему-то - я, с твоей точки зрения.
Вот. А дебил почему-то - я, с твоей точки зрения.
видимо, буквы одни видим, а читаем по разному. бывает.
однако, мои реверансы, исключительно, в ответ.
одни только термопары кушают 1А. а еще есть куча потребителей. Нужен доп БП
одни только термопары кушают 1А
каждая? :)
одни только термопары кушают 1А
каждая? :)
как с русской грамматикой? Хуже, чем с Ардуиной?
"одни только термопары кушают 1А"
"одни только термопары кушают ПО 1А"
разница есть в буквах? )))
одни только термопары кушают 1А. а еще есть куча потребителей. Нужен доп БП
Это что же за термопары такие, кушающие 1А? MAX6675 максимум 1,5 мА потребляет.
одни только термопары кушают 1А. а еще есть куча потребителей. Нужен доп БП
Это что же за термопары такие, кушающие 1А? MAX6675 максимум 1,5 мА потребляет.
50mA
https://www.chipdip.ru/product/max6675-k-module-for-thermocouple
50mA
https://www.chipdip.ru/product/max6675-k-module-for-thermocouple
https://datasheets.maximintegrated.com/en/ds/MAX6675.pdf
Supply Current max: 1,5 мА
по всякому пробовал
теперь попробуй подумать...
как и чем?
Очевидно тем, что сильно тупит и «как» уже тут чисто пофилософствовать.