ამ სტატიაში გავეცნობით რა არის I2C ინტერფეისი (ay-tu-si, i-two-tse), რა არის მისი მახასიათებლები და როგორ უნდა ვიმუშაოთ მასთან.
Ეს აუცილებელია
- - არდუინო;
- - ციფრული პოტენციომეტრი AD5171;
- - სინათლის დიოდი;
- - 220 ომი რეზისტორი;
- - 2 რეზისტორი 4.7 kOhm- ისთვის;
- - სადენების დამაკავშირებელი.
ინსტრუქციები
Ნაბიჯი 1
IIC სერიული საკომუნიკაციო პროტოკოლი (ასევე მოუწოდა I2C - ინტერ-ინტეგრირებული წრეები) მონაცემთა გადასაცემად იყენებს ორ ორმხრივ საკომუნიკაციო ხაზს, რომელსაც ეწოდება SDA (სერიული მონაცემების) ავტობუსი და SCL (სერიული საათი) ავტობუსი. ასევე არსებობს ორი ელექტროგადამცემი ხაზი. SDA და SCL ავტობუსები ელექტროენერგიის ავტობუსამდე მიდიან რეზისტორების საშუალებით.
ქსელში არის მინიმუმ ერთი სამაგისტრო, რომელიც იწყებს მონაცემთა გადაცემას და ქმნის სინქრონიზაციის სიგნალებს. ქსელს ასევე აქვს მონები, რომლებიც გადასცემენ მონაცემებს მასტერის მოთხოვნით. თითოეულ მონა მოწყობილობას აქვს უნიკალური მისამართი, რომელზეც მას master მიმართავს. მოწყობილობის მისამართი მითითებულია პასპორტში (მონაცემთა ცხრილი). 127 მოწყობილობამდე შეიძლება მიერთდეს ერთ 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
ნაბიჯი 3
I2C ავტობუსის საშუალებით მოწყობილობებთან მონაცემთა გაცვლის ხელშესაწყობად, დაიწერა სტანდარტული "Wire" ბიბლიოთეკა Arduino- სთვის. მას აქვს შემდეგი ფუნქციები:
დასაწყისი (მისამართი) - ბიბლიოთეკის ინიცირება და კავშირი I2C ავტობუსთან; თუ მისამართი არ არის მითითებული, მაშინ დაკავშირებული მოწყობილობა ითვლება სამაგისტრო; გამოიყენება 7 ბიტიანი მისამართით;
requestFrom () - გამოიყენება სამაგისტრო მიერ მონადან გარკვეული რაოდენობის ბაიტის მოთხოვნით;
startTransmission (მისამართი) - მონა მოწყობილობაზე კონკრეტულ მისამართზე მონაცემთა გადაცემის დასაწყისი;
endTransmission () - მონაზე მონაცემთა გადაცემის შეწყვეტა;
ჩაწერა () - მონას მონაცემების წერა მოთხოვნის საპასუხოდ;
available () - აბრუნებს მონადან ინფორმაციის მისაღებად ხელმისაწვდომი ბაიტების რაოდენობას;
წაკითხული () - წაიკითხეთ მონადან ბატონზე ან ბატონიდან მონაზე გადატანილი ბაიტი;
onReceive () - მიუთითებს ფუნქციის გამოსაძახებლად, როდესაც მონა გადაცემას გადასცემს ბატონისგან;
onRequest () - მიუთითებს ფუნქციის გამოსაძახებლად, როდესაც ოსტატი იღებს მონას გადაცემას.
ნაბიჯი 4
მოდით ვნახოთ, როგორ ვიმუშაოთ I2C ავტობუსთან Arduino- ს გამოყენებით.
პირველი, ჩვენ შევადგენთ წრეს, როგორც ეს ნაჩვენებია ნახატზე. ჩვენ ვაკონტროლებთ LED- ის სიკაშკაშეს AD5171 64 პოზიციური ციფრული პოტენციოტრის გამოყენებით, რომელიც უერთდება I2C ავტობუსს. მისამართი, რომელზეც მივმართავთ პოტენციოლს, არის 0x2c (44 ათობითი).
ნაბიჯი 5
ახლა მოდით გავხსნათ ესკიზი "Wire" ბიბლიოთეკის მაგალითებიდან:
ფაილი -> ნიმუშები -> მავთული -> ციფრული_პოტენციმეტრი. მოდით ჩავტვირთოთ Arduino მეხსიერებაში. მოდით ჩართოთ იგი.
ხედავთ, LED- ის სიკაშკაშე ციკალურად იზრდება, შემდეგ კი მოულოდნელად ქრება. ამ შემთხვევაში, ჩვენ ვაკონტროლებთ potentiometer- ს Arduino- ს გამოყენებით I2C ავტობუსის საშუალებით.