I2C და Arduino ინტერფეისი

Სარჩევი:

I2C და Arduino ინტერფეისი
I2C და Arduino ინტერფეისი

ვიდეო: I2C და Arduino ინტერფეისი

ვიდეო: I2C და Arduino ინტერფეისი
ვიდეო: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, ნოემბერი
Anonim

ამ სტატიაში გავეცნობით რა არის I2C ინტერფეისი (ay-tu-si, i-two-tse), რა არის მისი მახასიათებლები და როგორ უნდა ვიმუშაოთ მასთან.

I2c ინტერფეისი
I2c ინტერფეისი

Ეს აუცილებელია

  • - არდუინო;
  • - ციფრული პოტენციომეტრი AD5171;
  • - სინათლის დიოდი;
  • - 220 ომი რეზისტორი;
  • - 2 რეზისტორი 4.7 kOhm- ისთვის;
  • - სადენების დამაკავშირებელი.

ინსტრუქციები

Ნაბიჯი 1

IIC სერიული საკომუნიკაციო პროტოკოლი (ასევე მოუწოდა I2C - ინტერ-ინტეგრირებული წრეები) მონაცემთა გადასაცემად იყენებს ორ ორმხრივ საკომუნიკაციო ხაზს, რომელსაც ეწოდება SDA (სერიული მონაცემების) ავტობუსი და SCL (სერიული საათი) ავტობუსი. ასევე არსებობს ორი ელექტროგადამცემი ხაზი. SDA და SCL ავტობუსები ელექტროენერგიის ავტობუსამდე მიდიან რეზისტორების საშუალებით.

ქსელში არის მინიმუმ ერთი სამაგისტრო, რომელიც იწყებს მონაცემთა გადაცემას და ქმნის სინქრონიზაციის სიგნალებს. ქსელს ასევე აქვს მონები, რომლებიც გადასცემენ მონაცემებს მასტერის მოთხოვნით. თითოეულ მონა მოწყობილობას აქვს უნიკალური მისამართი, რომელზეც მას master მიმართავს. მოწყობილობის მისამართი მითითებულია პასპორტში (მონაცემთა ცხრილი). 127 მოწყობილობამდე შეიძლება მიერთდეს ერთ I2C ავტობუსს, მათ შორის რამდენიმე მაგისტრი. ოპერაციის დროს მოწყობილობები შეიძლება დაუკავშირდეს ავტობუსს, ე.ი. ის მხარს უჭერს ცხელ მიერთებას.

I2C კავშირის სქემა
I2C კავშირის სქემა

ნაბიჯი 2

Arduino იყენებს ორ პორტს I2C ინტერფეისზე სამუშაოდ. მაგალითად, Arduino UNO- სა და Arduino Nano- ში, ანალოგური პორტი A4 შეესაბამება SDA- ს, ანალოგური პორტი A5 შეესაბამება SCL- ს.

დაფის სხვა მოდელებისთვის:

Arduino Pro და Pro Mini - A4 (SDA), A5 (SCL)

Arduino Mega - 20 (SDA), 21 (SCL)

არდუინო ლეონარდო - 2 (SDA), 3 (SCL)

Arduino Due - 20 (SDA), 21 (SCL), SDA1, SCL1

Arduino ქინძისთავების SDA და SCL ავტობუსების დალაგება
Arduino ქინძისთავების SDA და SCL ავტობუსების დალაგება

ნაბიჯი 3

I2C ავტობუსის საშუალებით მოწყობილობებთან მონაცემთა გაცვლის ხელშესაწყობად, დაიწერა სტანდარტული "Wire" ბიბლიოთეკა Arduino- სთვის. მას აქვს შემდეგი ფუნქციები:

დასაწყისი (მისამართი) - ბიბლიოთეკის ინიცირება და კავშირი I2C ავტობუსთან; თუ მისამართი არ არის მითითებული, მაშინ დაკავშირებული მოწყობილობა ითვლება სამაგისტრო; გამოიყენება 7 ბიტიანი მისამართით;

requestFrom () - გამოიყენება სამაგისტრო მიერ მონადან გარკვეული რაოდენობის ბაიტის მოთხოვნით;

startTransmission (მისამართი) - მონა მოწყობილობაზე კონკრეტულ მისამართზე მონაცემთა გადაცემის დასაწყისი;

endTransmission () - მონაზე მონაცემთა გადაცემის შეწყვეტა;

ჩაწერა () - მონას მონაცემების წერა მოთხოვნის საპასუხოდ;

available () - აბრუნებს მონადან ინფორმაციის მისაღებად ხელმისაწვდომი ბაიტების რაოდენობას;

წაკითხული () - წაიკითხეთ მონადან ბატონზე ან ბატონიდან მონაზე გადატანილი ბაიტი;

onReceive () - მიუთითებს ფუნქციის გამოსაძახებლად, როდესაც მონა გადაცემას გადასცემს ბატონისგან;

onRequest () - მიუთითებს ფუნქციის გამოსაძახებლად, როდესაც ოსტატი იღებს მონას გადაცემას.

ნაბიჯი 4

მოდით ვნახოთ, როგორ ვიმუშაოთ I2C ავტობუსთან Arduino- ს გამოყენებით.

პირველი, ჩვენ შევადგენთ წრეს, როგორც ეს ნაჩვენებია ნახატზე. ჩვენ ვაკონტროლებთ LED- ის სიკაშკაშეს AD5171 64 პოზიციური ციფრული პოტენციოტრის გამოყენებით, რომელიც უერთდება I2C ავტობუსს. მისამართი, რომელზეც მივმართავთ პოტენციოლს, არის 0x2c (44 ათობითი).

LED მართვის წრე ციფრული პოტენციოტრისა და Arduino– ს გამოყენებით
LED მართვის წრე ციფრული პოტენციოტრისა და Arduino– ს გამოყენებით

ნაბიჯი 5

ახლა მოდით გავხსნათ ესკიზი "Wire" ბიბლიოთეკის მაგალითებიდან:

ფაილი -> ნიმუშები -> მავთული -> ციფრული_პოტენციმეტრი. მოდით ჩავტვირთოთ Arduino მეხსიერებაში. მოდით ჩართოთ იგი.

ხედავთ, LED- ის სიკაშკაშე ციკალურად იზრდება, შემდეგ კი მოულოდნელად ქრება. ამ შემთხვევაში, ჩვენ ვაკონტროლებთ potentiometer- ს Arduino- ს გამოყენებით I2C ავტობუსის საშუალებით.

გირჩევთ: