Სარჩევი:
- ნაბიჯი 1: მიმოხილვა
- ნაბიჯი 2: რაც გჭირდებათ / ბმულები
- ნაბიჯი 3: სქემის დიაგრამა
- ნაბიჯი 4: პროგრამირება - მე
- ნაბიჯი 5: პროგრამირება - II
- ნაბიჯი 6: ვიდეო
ვიდეო: MCP-23008- ის გამოყენება სარელეო ინტერფეისის (I2C) :: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
გამარჯობა
კარგი მისალმებები.. !!
მე (სომანშუ ჩუდჰარი) Dcube– ის ტექნიკური საწარმოების სახელით ვაპირებ აკონტროლებდეს რელეებს I2C პროტოკოლით Arduino nano– ს და MCP23008– ის გამოყენებით.
ნაბიჯი 1: მიმოხილვა
- MCP23X08 მოწყობილობა უზრუნველყოფს 8 ბიტიან, ზოგადი დანიშნულების, პარალელურ I/O გაფართოებას I2C ავტობუსის ან SPI პროგრამებისთვის.
- MCP23X08 შედგება რამოდენიმე 8 ბიტიანი კონფიგურაციის რეგისტრისაგან შეყვანის, გამომავალი და პოლარობის შესარჩევად. სისტემის ოსტატს შეუძლია შეაყენოს I/O შესასვლელებად ან გამოსასვლელად I/O კონფიგურაციის ბიტების ჩაწერით. თითოეული შეყვანის ან გამომავლის მონაცემები ინახება შესაბამის შეყვანის ან გამოყვანის რეესტრში. შეყვანის პორტის რეგისტრის პოლარობა შეიძლება გადაბრუნდეს პოლარობის ინვერსიის რეგისტრით. ყველა რეგისტრის წაკითხვა შესაძლებელია სისტემის ოსტატის მიერ.
- მონაცემთა ბმული:
ნაბიჯი 2: რაც გჭირდებათ / ბმულები
1. არდუინო ნანო ბმული:
2. ფარი არდუინო ნანოს ბმულისთვის:
3. USB კაბელი ტიპი A მიკრო ტიპი B 6 ფეხზე გრძელი
4. I²C საკაბელო ბმული:
5. რვა SPDT I²C კონტროლირებადი რელე
6. ადაპტერი ბმული:
ნაბიჯი 3: სქემის დიაგრამა
ნაბიჯი 4: პროგრამირება - მე
- ამ კოდში მე ვიყენებ ფუნქციის პროგრამირების პარადიგმას
- მე გამოვიყენე სხვადასხვა ჩანართი ფუნქციების განსაზღვრისა და ფუნქციის გამოძახებისთვის
კოდი ცხრილის ქვეშ q:
// მარტივი ფუნქციის გამოძახების კოდი
#მოიცავს ბათილად დაყენებას ()
{
// MCP23008 I2C მისამართი
#განსაზღვრეთ MCP_ADDR 0x20
// შეუერთდით I2C ავტობუსს, როგორც ოსტატი
Wire.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 სარელეო ჩართვაზე და გამორთვაზე
ბათილია a1_on () {
// გადაცემის დაწყება
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x01);
დაგვიანება (1800);
მავთული. მოთხოვნა (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);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
კოდი ცხრილის ქვეშ q2:
// ეს კოდი არის ჩართული და გამორთული რელე 2 ბორტზე
ბათილია a2_on () {
// გადაცემის დაწყება
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x02);
დაგვიანება (1800);
მავთული. მოთხოვნა (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);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
კოდი ცხრილის ქვემოთ q3: // ეს კოდი არის ბორტზე რელე 3 -ის ჩართვა და გამორთვა
ბათილია a3_on ()
{
// გადაცემის დაწყება
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x04);
დაგვიანება (1800);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
ბათილია a3_off ()
{
// გადაცემის დაწყება
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
დაგვიანება (1800);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
ნაბიჯი 5: პროგრამირება - II
კოდი ცხრილის ქვეშ q4:
// ეს კოდი არის ბორტზე რელე 4 -ის ჩართვა და გამორთვა
ბათილია a4_on ()
{
// დაიწყეთ გადაცემა
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x08);
დაგვიანება (1800);
მავთული. მოთხოვნა (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);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
კოდი ცხრილის ქვეშ q5:
// ეს კოდი არის ბორტზე რელე 5 -ის ჩართვა და გამორთვა
ბათილია a5_on ()
{
// გადაცემის დაწყება
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x10);
დაგვიანება (1800);
მავთული. მოთხოვნა (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);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
კოდი ცხრილის ქვეშ q6: // ეს კოდი არის ბორტზე რელე 6 -ის ჩართვა და გამორთვა
ბათილია a6_on ()
{
// გადაცემის დაწყება
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x20);
დაგვიანება (1800);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
ბათილია a6_off ()
{
// დაიწყეთ გადაცემა
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
დაგვიანება (1800);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
კოდი ცხრილის ქვეშ q7: // ეს კოდი არის რელე 7 ჩართული და გამორთული ბორტზე
ბათილია a7_on () {
// დაიწყეთ გადაცემა
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x40);
დაგვიანება (1800);
მავთული. მოთხოვნა (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);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
კოდი ცხრილის ქვეშ q8: // ეს კოდი არის ბორტზე რელე 8 -ის ჩართვა და გამორთვა
ბათილია a8_on () {
// დაიწყეთ გადაცემა
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x80);
დაგვიანება (1800);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
void a8_off ()
{
// დაიწყეთ გადაცემა
Wire.beginTransmission (MCP_ADDR);
Wire.write (0x09);
Wire.write (0x00);
დაგვიანება (1800);
მავთული. მოთხოვნა (MCP_ADDR, 1);
int GPIO = Wire.read ();
Wire.endTransmission ();
// გამოტანა ეკრანზე
Serial.print ("GPIO მნიშვნელობა:");
Serial.println (GPIO, BIN);
}
ნაბიჯი 6: ვიდეო
დამატებითი კითხვებისთვის შეგიძლიათ ეწვიოთ ჩვენს საიტს:
www.dcubetechnologies.com
გირჩევთ:
I2C სარელეო შეხვდა Arduino IDE: 5 ნაბიჯი
I2C სარელეო შეხვდა Arduino IDE: მე ვკვეთავ ლამაზ დაფაზე მაგრამ არ იყო ArduinoIDE ინსტრუქცია, უბრალოდ Raspberry Pi e.o. მე ვხვდები როგორ გამოვიყენო ის არდუინოსთან და მინდა გავუზიარო მას, ასე რომ თქვენ შეგიძლიათ დაზოგოთ ეს დრო. ორიგინალური ჟოლოს მაგალითი: wiki.52pi.com/index.php/DockerPi_4_Channel_R
ინტერფეისის LM35 ტემპერატურის სენსორი არდუინოსთან: 4 ნაბიჯი
ინტერფეისის LM35 ტემპერატურის სენსორი Arduino– სთან ერთად: თერმომეტრები არის სასარგებლო აპარატი, რომელიც დიდი ხანია გამოიყენება ტემპერატურის გაზომვისთვის. ამ პროექტში ჩვენ შევქმენით არდუინოზე დაფუძნებული ციფრული თერმომეტრი, რომელიც აჩვენებს გარემოს ტემპერატურისა და ტემპერატურის ცვლილებებს LCD ეკრანზე. ეს შეიძლება იყოს დეპრესიული
სრული Python ვებ ინტერფეისის ნაკრები PhidgetSBC3: 6 ნაბიჯი
სრული Python ვებ ინტერფეისის ნაკრები PhidgetSBC3– ისთვის: PhidgetSBC3 დაფა არის სრული ფუნქციონალური ერთჯერადი კომპიუტერი, რომელიც მუშაობს Debain Linux– ით. ის ჟოლოს პი მსგავსია, მაგრამ აქვს 8 ანალოგური სენსორული შეყვანა და 8 ციფრული შეყვანა და 8 ციფრული გამოსავალი. იგი იგზავნება ვებ სერვერთან და ვებ აპლიკაციასთან ერთად
ინტერფეისის GPS მოდულის ჟოლოს Pi: 10 ნაბიჯი
ინტერფეისის GPS მოდული ჟოლოს Pi: Hey ბიჭებო !! გსურს გქონდეს GPS მოდულის ინტერფეისი ჟოლოს პითან? მაგრამ რაიმე სირთულის წინაშე დგას ამის გაკეთება?”არ ინერვიულო, მე აქ ვარ დაგეხმარო! თქვენ შეგიძლიათ დაიწყოთ შემდეგი ნაწილების გამოყენებით:
RFID Arduino Uno სარელეო გადამრთველი, I2C ჩვენებით: 4 ნაბიჯი
RFID Arduino Uno სარელეო გადამრთველი, I2C ჩვენებით: გამარჯობა, ეს არის ჩემი პირველი პროექტი, მე მქვია ოსკარი და მე ვარ 13. ეს პროექტი მუშაობს I2C დისპლეით, არა ჩვეულებრივი