Mcp23017: Skirtumas tarp puslapio versijų
Jump to navigation
Jump to search
15 eilutė: | 15 eilutė: | ||
* 15 -> GND | * 15 -> GND | ||
+ | <Syntaxhighlight lang="cpp"> | ||
+ | // ESP32 I2C Scanner | ||
+ | // Based on code of Nick Gammon http://www.gammon.com.au/forum/?id=10896 | ||
+ | // ESP32 DevKit - Arduino IDE 1.8.5 | ||
+ | // Device tested PCF8574 - Use pullup resistors 3K3 ohms ! | ||
+ | // PCF8574 Default Freq 100 KHz | ||
+ | #include <Wire.h> | ||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin (115200); | ||
+ | Wire.begin (21, 22); // sda= GPIO_21 /scl= GPIO_22 | ||
+ | } | ||
+ | void Scanner () | ||
+ | { | ||
+ | Serial.println (); | ||
+ | Serial.println ("I2C scanner. Scanning ..."); | ||
+ | byte count = 0; | ||
+ | Wire.begin(); | ||
+ | for (byte i = 8; i < 120; i++) | ||
+ | { | ||
+ | Wire.beginTransmission (i); // Begin I2C transmission Address (i) | ||
+ | if (Wire.endTransmission () == 0) // Receive 0 = success (ACK response) | ||
+ | { | ||
+ | Serial.print ("Found address: "); | ||
+ | Serial.print (i, DEC); | ||
+ | Serial.print (" (0x"); | ||
+ | Serial.print (i, HEX); // PCF8574 7 bit address | ||
+ | Serial.println (")"); | ||
+ | count++; | ||
+ | } | ||
+ | } | ||
+ | Serial.print ("Found "); | ||
+ | Serial.print (count, DEC); // numbers of devices | ||
+ | Serial.println (" device(s)."); | ||
+ | } | ||
+ | void loop() | ||
+ | { | ||
+ | Scanner (); | ||
+ | delay (100); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
= ESP8266 = | = ESP8266 = |
02:37, 26 lapkričio 2022 versija
This port expander provides you 16 more GPIOs and cost you around 1€. And because it communicates via I²C it only uses two GPIOs of your ESP8266 and you can address up to 8 MCP23017. That makes up to 126 additional GPIOs.
ESP32 Wiring
- SDA -> pin 21
- SCL -> pin 22
- VSS -> GND
- VDD -> VIN
- 17 -> GND
- 16 -> GND
- 15 -> GND
// ESP32 I2C Scanner
// Based on code of Nick Gammon http://www.gammon.com.au/forum/?id=10896
// ESP32 DevKit - Arduino IDE 1.8.5
// Device tested PCF8574 - Use pullup resistors 3K3 ohms !
// PCF8574 Default Freq 100 KHz
#include <Wire.h>
void setup()
{
Serial.begin (115200);
Wire.begin (21, 22); // sda= GPIO_21 /scl= GPIO_22
}
void Scanner ()
{
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i); // Begin I2C transmission Address (i)
if (Wire.endTransmission () == 0) // Receive 0 = success (ACK response)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX); // PCF8574 7 bit address
Serial.println (")");
count++;
}
}
Serial.print ("Found ");
Serial.print (count, DEC); // numbers of devices
Serial.println (" device(s).");
}
void loop()
{
Scanner ();
delay (100);
}
ESP8266
https://medium.com/@wilko.vehreke/more-gpios-for-the-esp8266-with-the-mcp23017-b89f5e15cde3