Სარჩევი:
- ნაბიჯი 1: როგორ მუშაობს I2c
- ნაბიჯი 2:
- ნაბიჯი 3: გამოყენება
- ნაბიჯი 4: წაიკითხეთ მნიშვნელობა
- ნაბიჯი 5: წაიკითხეთ ვალე არხიდან
- ნაბიჯი 6: დაწერეთ მნიშვნელობა
- ნაბიჯი 7: დამატებითი მახასიათებლები
- ნაბიჯი 8: მაგალითები კავშირის დიაგრამა
- ნაბიჯი 9: მადლობა
ვიდეო: PCF8591 (i2c ანალოგი I/O Expander) სწრაფი მარტივი გამოყენება: 9 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ბიბლიოთეკა გამოიყენებს i2c pcf8591 IC arduino და esp8266.
ამ IC- ს შეუძლია გააკონტროლოს (4 -მდე) ანალოგური შეყვანა და/ან 1 ანალოგური გამომავალი, როგორიცაა ძაბვის გაზომვა, თერმისტორის მნიშვნელობის წაკითხვა ან LED- ის ქრებოდა.
შეუძლია წაიკითხოს ანალოგური მნიშვნელობა და ჩაწეროს ანალოგური მნიშვნელობა მხოლოდ 2 მავთულით (იდეალურია ESP-01– ისთვის).
ვცდილობ გავამარტივო ამ IC– ის გამოყენება, მინიმალური კომპლექტი ოპერაციით.
თქვენ შეგიძლიათ იპოვოთ განახლებული ვერსია ჩემს საიტზე
ნაბიჯი 1: როგორ მუშაობს I2c
I2C მუშაობს მის ორ მავთულზე, SDA (მონაცემთა ხაზი) და SCL (საათის ხაზი).
ორივე ეს ხაზი ღიაა, მაგრამ გაყვანილია რეზისტენტებით.
როგორც წესი, ხაზზე არის ერთი ბატონი და ერთი ან მრავალი მონა, თუმცა შეიძლება იყოს მრავალი ბატონი, მაგრამ ამაზე მოგვიანებით ვისაუბრებთ.
ბატონებსა და მონაებს შეუძლიათ მონაცემების გადაცემა ან მიღება, შესაბამისად, მოწყობილობა შეიძლება იყოს ამ ოთხივე მდგომარეობიდან ერთში: სამაგისტრო გადაცემა, სამაგისტრო მიღება, მონა გადაცემა, მონა მიღება.
ნაბიჯი 2:
აქ შეგიძლიათ ნახოთ ჩემი ბიბლიოთეკა.
Ჩამოტვირთვა.
დააწკაპუნეთ DOWNLOADS ღილაკს ზედა მარჯვენა კუთხეში, დაარქვით სახელი არაკომპრესირებულ საქაღალდეს PCF8591.
შეამოწმეთ, რომ PCF8591 საქაღალდე შეიცავს PCF8591.cpp და PCF8591.h.
მოათავსეთ PCF8591 ბიბლიოთეკის საქაღალდე თქვენი / ბიბლიოთეკები / საქაღალდე.
შეიძლება დაგჭირდეთ ბიბლიოთეკების ქვესაქაღალდის შექმნა, თუ ეს თქვენი პირველი ბიბლიოთეკაა.
გადატვირთეთ IDE.
ნაბიჯი 3: გამოყენება
კონსტრუქტორი: თქვენ უნდა მიუთითოთ i2c მისამართი (მისამართის შესამოწმებლად გამოიყენეთ ეს სახელმძღვანელო I2cScanner)
PCF8591 (uint8_t მისამართი);
esp8266– სთვის, თუ გსურთ მიუთითოთ SDA e SCL pin გამოიყენეთ ეს:
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: წაიკითხეთ ვალე არხიდან
ამ IC– ს აქვს წაკითხვის მრავალი ტიპი და შეგიძლიათ გამოიყენოთ ანალოგური შეყვანის ან ანალოგური არხი (როდესაც იყენებთ ერთ წაკითხულ ანალოგიურ შეყვანას და არხი სურათებშია).
მაგალითად, რომ წაიკითხოთ 0 არხის მნიშვნელობა ორ დიფერენციალურ შეყვანისას, თქვენ უნდა გააკეთოთ:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // წაიკითხეთ ანალოგი 0
ნაბიჯი 6: დაწერეთ მნიშვნელობა
თუ გსურთ დაწეროთ ანალოგური მნიშვნელობა, თქვენ უნდა გააკეთოთ (მნიშვნელობა არის 0 -დან 255 -მდე):
pcf8591.analogWrite (128);
ნაბიჯი 7: დამატებითი მახასიათებლები
დამატებითი ფუნქციაა წერის ძაბვის წაკითხვა: ძაბვის გამოთვლისთვის თქვენ უნდა გაიაროთ რამდენიმე პარამეტრი:
- მიკროკონტროლი მითითება ძაბვა: მიიღეთ ძაბვა მიკროკონტროლის ძაბვისგან (მხოლოდ AVR არ esp8266 for esp 3.3v დაფიქსირდა)
- referenceVoltage: if microcontrollerReferenceVoltage false მიიღოს ეს მნიშვნელობა ბრძანება არის:
void voltageWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
float voltageRead (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 ეკრანი
გირჩევთ:
მარტივი სინათლის სენსორი LED (ანალოგი): 3 ნაბიჯი
მარტივი სინათლის სენსორი LED- ით (ანალოგი): გამარჯობა! ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ მარტივი სინათლის სენსორი LED- ით. ძირითადად ეს წრე უბრალოდ ანათებს LED- ს, როდესაც ის სინათლეს ექვემდებარება. ჩემთვის ეს წრე არის უსარგებლო, რადგან ამით ბევრს ვერაფერს გააკეთებ, მაგრამ მე ვფიქრობ
DHT12 (i2c იაფი ტენიანობის და ტემპერატურის სენსორი), სწრაფი მარტივი გამოყენება: 14 ნაბიჯი
DHT12 (i2c იაფი ტენიანობის და ტემპერატურის სენსორი), სწრაფი მარტივი გამოყენება: განახლება და სხვა შეგიძლიათ იხილოთ ჩემს საიტზე https://www.mischianti.org/2019/01/01/dht12-library-en/. მე მომწონს ეს სენსორი შეიძლება გამოყენებულ იქნას 2 მავთულით (i2c პროტოკოლი), მაგრამ მე მიყვარს იაფი. ეს არის Arduino და esp8266 ბიბლიოთეკა DHT12 სერიისთვის
"მარტივი" დიგილოგის საათი (ციფრული ანალოგი) რეციკლირებული მასალის გამოყენებით!: 8 ნაბიჯი (სურათებით)
"მარტივი" დიგილოგური საათი (ციფრული ანალოგი) რეციკლირებული მასალის გამოყენებით!: გამარჯობა ყველას! ასე რომ, ამ ინსტრუქციის მიხედვით, მე გაგიზიარებთ თუ როგორ გავაკეთოთ ეს ციფრული + ანალოგური საათი იაფი მასალის გამოყენებით! თუ ფიქრობთ, რომ ეს პროექტი "ცუდია", შეგიძლია წახვიდე და არ გააგრძელო ამ ინსტრუქტორის კითხვა. მშვიდობა! მე ნამდვილად ვწუხვარ, თუკი
Raspberry Pi GPIO სქემები: LDR ანალოგური სენსორის გამოყენება ADC გარეშე (ციფრული გადამყვანის ანალოგი): 4 ნაბიჯი
Raspberry Pi GPIO სქემები: LDR ანალოგური სენსორის გამოყენება ADC– ს გარეშე (ციფრული გადამყვანის ანალოგი): ჩვენს ადრინდელ ინსტრუქციებში ჩვენ გაჩვენეთ, თუ როგორ შეგიძლიათ დაუკავშიროთ თქვენი Raspberry Pi– ს GPIO ქინძისთავები LED– ებსა და კონცენტრატორებს და როგორ არის GPIO ქინძისთავები მაღალი ან დაბალი. მაგრამ რა მოხდება, თუ გსურთ გამოიყენოთ თქვენი Raspberry Pi ანალოგური სენსორით? თუ ჩვენ გვსურს გამოვიყენოთ
სწრაფი და მარტივი რბილი გადამრთველები (სწრაფი პროტოტიპისთვის): 5 ნაბიჯი
სწრაფი და მარტივი რბილი გადამრთველები (სწრაფი პროტოტიპისთვის): რბილი გადამრთველების დამზადების მრავალი განსხვავებული გზა არსებობს. ეს ინსტრუქცია გვიჩვენებს რბილი ჩამრთველის ძალიან სწრაფი პროტოტიპის კიდევ ერთ ვარიანტს, გამტარ ქსოვილის ნაცვლად ალუმინის ლენტის გამოყენებით და გამტარი ძაფის ნაცვლად მყარი მავთულის გამოყენებით, რომელიც