Мазмуну:
- 1 -кадам: I2c кантип иштейт
- 2-кадам:
- 3 -кадам: Колдонуу
- 4 -кадам: баалуулуктарды окуу
- 5 -кадам: Vale каналынан окуу
- 6 -кадам: Жазуу мааниси
- 7 -кадам: Кошумча өзгөчөлүктөр
- 8 -кадам: Кошулуу диаграммасынын мисалдары
- 9 -кадам: рахмат
Video: PCF8591 (i2c Analog I/O Expander) Fast Easy Use: 9 Steps
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
I2c pcf8591 ICди arduino жана esp8266 менен колдонуу үчүн китепкана.
Бул IC (4кө чейин) аналогдук кирүүнү жана/же 1 аналогдук чыгууну өлчөй алат, термистордун маанисин окуй алат же ледди өчүрөт.
Аналогдук маанини окуй алат жана аналогдук маанини 2 зым менен гана жаза алат (ESP-01 үчүн идеалдуу).
Мен минималдуу операция топтому менен бул ICди колдонууну жөнөкөйлөтүүгө аракет кылам.
Сиз жаңыртылган версияны менин сайтымдан таба аласыз
1 -кадам: I2c кантип иштейт
I2C эки зым менен иштейт, SDA (маалымат линиясы) жана SCL (саат линиясы).
Бул эки линия тең ачык дренаждуу, бирок резисторлор менен тартылган.
Адатта линияда бир кожоюн жана бир же бир нече кул бар, бирок бир нече кожоюн болушу мүмкүн, бирок бул тууралуу кийинчерээк сүйлөшөбүз.
Кожоюндар да, кулдар да маалыматтарды жөнөтө же ала алышат, андыктан аппарат бул төрт абалдын биринде болушу мүмкүн: кожоюн берүү, кожоюн алуу, кул берүү, кул алуу.
2-кадам:
Бул жерден менин китепканамды таба аласыз.
Жүктөө үчүн.
Жогорку оң бурчтагы ЖҮКТӨР баскычын чыкылдатыңыз, кысылбаган папканы PCF8591 атын өзгөртүңүз.
PCF8591 папкасында PCF8591.cpp жана PCF8591.h бар экендигин текшериңиз.
PCF8591 китепкана папкасын сиздин / libraries / папканы коюңуз.
Сиз биринчи китепкана болсоңуз, китепканалар субфольдорун түзүшүңүз керек болот.
IDEди кайра жүктөө.
3 -кадам: Колдонуу
Конструктор: i2c дарегин тапшырышыңыз керек (даректи текшерүү үчүн I2cScanner бул колдонмону колдонуңуз)
PCF8591 (uint8_t дареги);
esp8266 үчүн, эгер сиз SDA e SCL пинин көрсөтүүнү кааласаңыз, муну колдонуңуз:
PCF8591 (uint8_t дареги, uint8_t sda, uint8_t scl);
4 -кадам: баалуулуктарды окуу
IC сүрөттө көрүнүп тургандай, 4 аналогдук киргизүү жана 1 аналогдук чыгаруу бар.
Ошентип, аналогдук киргизүүнү бир тразмияда окуу үчүн (мааниси 0дон 255ке чейин):
PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();
Serial.print (ai.ain0); Serial.print (" -"); Serial.print (ai.ain1); Serial.print (" -"); Serial.print (ai.ain2); Serial.print (" -"); Serial.println (ai.ain3);
Эгерде сиз бир аналогдук кирүүнү же каналды окууну кааласаңыз:
int ana = pcf8591.analogRead (AIN0); // 0 аналогун окуу
5 -кадам: Vale каналынан окуу
Бул ICде бир нече окуу түрү бар жана сиз аналогдук кирүүнү же аналогдук каналды колдоно аласыз (бир жолу окуганыңызда аналогдук киргизүү жана канал сүрөттөрдө).
Мисалы, 0 каналынын маанисин эки дифференциалдуу киргизүүдө окуу үчүн, сиз:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // 0 аналогун окуу
6 -кадам: Жазуу мааниси
Эгерде сиз аналогдук маанини жазгыңыз келсе, анда кылышыңыз керек (мааниси 0дон 255ке чейин):
pcf8591.analogWrite (128);
7 -кадам: Кошумча өзгөчөлүктөр
Кошумча өзгөчөлүк - жазуу чыңалуусун окуу: Чыңалууну эсептөө үчүн сиз кээ бир параметрден өтүшүңүз керек:
- microcontrollerReferenceVoltage: микроконтроллердин чыңалуусунан чыңалуусун алуу (esp 3.3v үчүн AVR гана esp8266 жок)
- referenceVoltage: if microcontrollerReferenceVoltage false бул маанини алыңыз Команда:
void kuchlanishWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
сүзүүчү чыңалууRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
Буга мисал:
pcf8591.voltageWrite (2.7); // 2.7Вольт чыгаруу
кечигүү (3000);
float ana0V = pcf8591.voltageRead (AIN0); // 0 чыңалуусун аналогдон окуу
Serial.println (ana0V);
8 -кадам: Кошулуу диаграммасынын мисалдары
9 -кадам: рахмат
i2c долбоорунун сериясы (Коллекция):
- Температура нымдуулугу сенсору
- Аналогдук экспантер
- Санарип экспантер
- LCD дисплей
Сунушталууда:
Wireless Vibration and Temperature Sensor Data to MySQL Use Node-RED: 40 Steps
Зымсыз дирилдөө жана температура сенсорунун маалыматтары Node-REDди колдонуп MySQLге: NCDдин узак аралыкка IoT өнөр жай зымсыз титирөө жана температура сенсорун киргизүү, 2 милге чейин зымсыз сетка тармагын колдонуу менен мактануу. Так 16 биттик титирөө жана температура сенсорун камтыган бул аппарат
DHT12 (i2c арзан нымдуулук жана температура сенсору), Fast Easy Use: 14 Steps
DHT12 (i2c Нымдуулук жана Температура Сенсору), Тез Оңой Колдонуу: Сиз жаңыртууларды жана башкаларды менин сайтымдан таба аласыз https://www.mischianti.org/2019/01/01/dht12-library-en/. 2 зым менен колдонсо болот (i2c протоколу), бирок мен арзанын жакшы көрөм, бул DHT12 сериясындагы Arduino жана esp8266 китепканасы
Түзүү-Alert-Use-Ubidots+ESP32 жана Vibration Sensor: 8 Steps
Түзүү-Alert-Use-Ubidots+ESP32 жана Vibration Sensor: Бул долбоордо биз Ubidots-дирилдөө сенсорун жана ESP32ди колдонуп, машинанын термелүүсү жана температурасы жөнүндө электрондук почта эскертүүсүн түзөбүз. моторлуу гаджеттердеги машиналар жана тетиктер. Вибрация мен
NODEMCU LUA ESP8266 MCP23008 менен 8 Bit Port Expander IC: 6 Steps
NODEMCU LUA ESP8266 MCP23008 8 Bit Port Expander IC менен: MCP23008 сериялык интерфейси бар 8-биттик I/O кеңейтүүчү жана 1.8 жана 5.5 вольттун ортосунда иштейт, ошондуктан ESP8266, Arduino, Raspberry Pi, PIC чиптери жана башкалар үчүн идеалдуу. Эгерде сиз менин башка Инструкторумду MCP23017де көргөн болсоңуз, анда ойлонушуңуз мүмкүн
NODEMCU LUA ESP8266 MCP23017 менен 16 Bit Port Expander IC: 6 Steps (Сүрөттөр менен)
NODEMCU LUA ESP8266 MCP23017 менен 16 Bit Port Expander IC: MCP23017 - бул чиптин эки жагында А жана В порттары бар жана казыктар ырааттуу тартипте болгондуктан, такта жасоо үчүн салыштырмалуу оңой IC. Бул ICде колдонулбаган 2 пин бар