Мазмуну:
- 1 -кадам: Обзор
- 2 -кадам: Сизге эмне керек / Шилтемелер
- 3 -кадам: Райондук диаграмма
- 4 -кадам: Программалоо - И
- 5 -кадам: Программалоо - II
- 6 -кадам: Видео
Video: Relay Interface (I2C) колдонуу менен MCP-23008дин колдонулушу :: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
салам
Жакшы салам.. !!
Мен (Somanshu Choudhary) Dcube технологиялык ишканаларынын атынан реледи I2C протоколу аркылуу Arduino нано жана MCP23008 аркылуу башкарам.
1 -кадам: Обзор
- MCP23X08 түзмөгү I2C шинасы же SPI тиркемелери үчүн 8-бит, жалпы максатта, параллель I/O кеңейтүүсүн камсыз кылат.
- MCP23X08 киргизүү, чыгаруу жана полярдыкты тандоо үчүн бир нече 8-биттик конфигурация регистрлеринен турат. Тутумдун мастери I/Oну I/O конфигурация биттерин жазуу менен кириш же чыгуучу катары иштете алат. Ар бир киргизүү же чыгаруу боюнча маалыматтар тиешелүү Киргизүү же Чыгуу реестринде сакталат. Киргизүү портунун реестринин полярдуулугун Polarity Inversion реестри менен алмаштырса болот. Бардык регистрлерди системанын мастери окуй алат.
- DATASHEET LINK:
2 -кадам: Сизге эмне керек / Шилтемелер
1. Arduino Nano LINK:
2. Shield for Arduino Nano LINK:
3. USB кабелинин түрү Micro Type B 6 Feet Long
4. I²C Cable LINK:
5. SPDT I²C башкаруучу сегиз реле
6. Адаптер LINK:
3 -кадам: Райондук диаграмма
4 -кадам: Программалоо - И
- Бул коддо мен функционалдык программалоо парадигмасын колдоном
- Мен функцияларды аныктоо жана функцияларды чакыруу үчүн ар кандай өтмөктөрдү колдондум
Таблицанын алдындагы код q:
// Жөнөкөй функция чакыруу коду
#жараксыз орнотууну кошуу ()
{
// MCP23008 I2C дареги
#define MCP_ADDR 0x20
// I2C Busга мастер катары кошулуңуз
Wire.begin ();
// Сериялык байланышты баштаңыз жана байдын ылдамдыгын коюңуз
Serial.begin (9600);
// Берүүнү I2C шинасында берилген түзмөк менен баштаңыз
Wire.beginTransmission (MCP_ADDR);
// IODIR - I/O DIRECTION REGISTER регистрин тандаңыз
Wire.write (0x00);
// Керектүү операцияны тандоо (чыгаруу)
Wire.write (0x00);
// Конфигурация реестрин тандаңыз
Wire.write (0x05);
// Керектүү операцияны тандаңыз
Wire.write (0x0E);
// берүүнү токтотуу
Wire.endTransmission ();
}
боштук цикл ()
{
a1_on ();
кечигүү (1000);
a1_off ();
кечигүү (1000);
a2_on ();
кечигүү (1000);
a2_off ();
кечигүү (1000);
a3_on ();
кечигүү (1000);
a3_off ();
кечигүү (1000);
a4_on ();
кечигүү (1000);
a4_off ();
кечигүү (1000);
a5_on ();
кечигүү (1000);
a5_off ();
кечигүү (1000);
a6_on ();
кечигүү (1000);
a6_off ();
кечигүү (1000);
a7_on ();
кечигүү (1000);
a7_off ();
кечигүү (1000);
a8_on ();
кечигүү (1000);
a8_off ();
}
Таблицанын астындагы код q1:
// Бул код борттогу 1 -релени күйгүзүү жана өчүрүү
void a1_on () {
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
жараксыз a1_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
Таблицанын алдындагы код q2:
// Бул код борттогу 2 -релени күйгүзүү жана өчүрүү
void a2_on () {
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
жараксыз a2_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
ҮСТҮНДӨГҮ КОД q3: // Бул код борттогу 3 -релени күйгүзүү жана өчүрүү
void a3_on ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
void a3_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
5 -кадам: Программалоо - II
Таблицанын астындагы код q4:
// Бул код 4 -релени бортто күйгүзүү жана өчүрүү
void a4_on ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
жараксыз a4_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
Таблицанын астындагы код q5:
// Бул код 5 -реленин борттогу күйгүзүү жана өчүрүү болуп саналат
void a5_on ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
void a5_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
T6 астындагы код q6: // Бул код 6 -реленин бортунда күйгүзүү жана өчүрүү
void a6_on ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
void a6_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
T7 астындагы КОД:
void a7_on () {
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
void a7_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
Q8 табличасынын астындагы код: // Бул код борттогу 8 -релесин күйгүзүү жана өчүрүү
void a8_on () {
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
жараксыз a8_off ()
{
// Берүүнү баштаңыз
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
кечигүү (1800);
Wire.requestFrom (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// Экранга чыгаруу
Serial.print ("GPIO мааниси:");
Serial.println (GPIO, BIN);
}
6 -кадам: Видео
Кошумча суроолор боюнча биздин сайтка кирүүдөн тартынбаңыз:
www.dcubetechnologies.com
Сунушталууда:
I2C сенсор интерфейси менен баштоо ?? - Interface Сиздин MMA8451 ESP32s колдонуу: 8 кадам
I2C сенсор интерфейси менен баштоо ?? - Сиздин MMA8451 интерфейсиңиз ESP32лерди колдонуу: Бул үйрөткүчтө сиз контролер (Arduino, ESP32, ESP8266, ESP12 NodeMCU) менен иштөөчү I2C түзмөгүн (акселерометрди) кантип баштоо, туташтыруу жана алуу жөнүндө баардыгын үйрөнөсүз
Sol-EZ электромагниттик драйвер комплектинин колдонулушу: 9 кадам
Sol-EZ электромагниттик драйверлер комплектинин колдонуу боюнча көрсөтмөсү: ЭСКЕРТҮҮ: БУЛ ПРОДУКЦИЯНЫ КОЛДОНУУ КӨРСӨТМӨСҮ: SOL-EZ SOLNOID DRIVER KIT. Бул DIY долбоору эмес. Sol-EZ электромагниттик драйверлеринин комплектиси деген эмне?
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
Өлгөн автомобиль батареялары жана мөөрлөнгөн коргошун кислотасы үчүн колдонулушу: 5 кадам (сүрөттөр менен)
Өлгөн автомобиль батареялары жана мөөрлөнгөн коргошун кислотасы үчүн колдонулат: Көптөгөн "өлүк" автоунаа батареялары чындыгында эң жакшы батареялар. Алар мындан ары машинаны иштетүү үчүн жүздөгөн амперди бере алышпайт. Көптөгөн "өлгөн" мөөрлөнгөн коргошун кислотасы бар батареялар чындыгында ишенимдүү түрдө камсыз кыла албаган аккумуляторлор болуп саналат
NODEMCU 1.0 (ESP8266) КОНТРОЛЬДУК РЕЛИ BLYNK КОЛДОНУЛУШУ (ВЕБ ҮЧҮН): 5 кадам (Сүрөттөр менен)
NODEMCU 1.0 (ESP8266) БАШКАРЫЛГАН РЕЛИ BLYNK КОЛДОНУЛУШУ (ВЕБ ЖАЙЫНДА): Салам балдар менин атым П Стивен Лайт Джойти жана бул менин биринчи инструмент NETEMETSETETSETETETETETETETETETSETETSETETSETE ESP8 MY BAD ENGLISH