ዝርዝር ሁኔታ:
ቪዲዮ: DS1803 ባለሁለት ዲጂታል ፖታቲሞሜትር ከአርዱዲኖ ጋር 5 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:33
የ DS1803 ዲጂታል ፖታሜትር አጠቃቀምን ከአርዱዲኖ ጋር ማጋራት እወዳለሁ። ይህ IC በሁለት የሽቦ በይነገጽ ላይ ሊቆጣጠሩ የሚችሉ ሁለት ዲጂታል ፖታሜትሮችን ይ containsል ፣ ለዚህ እኔ የ wire.h ቤተ -መጽሐፍትን እጠቀማለሁ።
ይህ አይሲ የተለመደው የአናሎግ ፖታሜትር ሊተካ ይችላል። በዚህ መንገድ ለምሳሌ ማጉያ ወይም የኃይል አቅርቦትን መቆጣጠር ይችላሉ።
በዚህ መመሪያ ውስጥ ሥራውን ለማሳየት የሁለት ኤልኢዲዎችን ብሩህነት እቆጣጠራለሁ።
አርዱinoኖ የ rotary encoder ን ብዛት በመቁጠር እሴቱን በተለዋዋጭ ድስት [0] እና ማሰሮ [1] ውስጥ ያስቀምጣል። ማብሪያ / ማጥፊያውን (ኢንኮደር) ላይ ሲገፉት ፣ በድስት [0] እና በድስት [1] መካከል መቀያየር ይችላሉ።
የምድጃዎቹ ትክክለኛ ዋጋ ከ DS1803 ተመልሶ ይነበባል እና በተለዋዋጭ potValue [0] እና potValue [1] ውስጥ ይቀመጣል እና በ LCD ላይ ይታያል።
ደረጃ 1 የ DS1803 ግንኙነቶች
እዚህ የ DS1803 ግንኙነቶችን ማየት ይችላሉ። ሸ የ potentiometer ከፍተኛ ጎን ፣ L ዝቅተኛ ጎን እና W መጥረጊያ ነው። SCL እና SDA የአውቶቡስ ግንኙነቶች ናቸው።
ከግንኙነት A0 ፣ A1 እና A2 ጋር ለ DS1803 የራሱን አድራሻ መስጠት ይችላሉ ፣ በዚህ መንገድ ብዙ መሳሪያዎችን በአንድ አውቶቡስ በኩል መቆጣጠር ይችላሉ። በእኔ ምሳሌ ሁሉንም ፒኖች ከመሬት ጋር በማገናኘት ለ DS1803 adres 0 ሰጥቻለሁ።
ደረጃ 2 - የትእዛዝ ባይት
DS1803 የሚሠራበት መንገድ በትእዛዝ ባይት ውስጥ ሊያገለግል ይችላል። “ፖታቲሞሜትር -0 ፃፍ” ን ሲመርጡ ሁለቱም ፖታቲሞሜትሮች ተመርጠዋል ፣ ፖታቲሜትር -0 ን ማስተካከል ሲፈልጉ ፣ የመጀመሪያውን የውሂብ ባይት ብቻ መላክ አለብዎት። ፖታቲሞሜትር -1 ይፃፉ ፖቲሜትር -1 ን ብቻ ያስተካክሉ። “ለሁለቱም ፖታቲሞሜትሮች ይፃፉ” ለሁለቱም ፖታቲሞሜትሮች ተመሳሳይ እሴት ይሰጣል።
ደረጃ 3 የ DS1803 ቁጥጥር
የመቆጣጠሪያ ባይት (ምስል 3) የመሣሪያ መለያ አለው ፣ ይህ ሁል ጊዜ ተመሳሳይ ነው። በእኔ ምሳሌ A0 ፣ A1 እና A2 ውስጥ 0 ናቸው ምክንያቱም ሁሉንም ኤ-ፒኖች መሬት ላይ በማስቀመጥ አድሬዎችን እንመርጣለን። የመጨረሻው ቢት አር/ወ በአርዱኖ ውስጥ ባለው “Wire.beginTransmission” እና “Wire.requestFrom” ትዕዛዝ ወደ 0 ወይም 1 ይዘጋጃል። በስእል 5 ሙሉውን ቴሌግራም ማየት ይችላሉ። የተነበበው ቴሌግራም በምስል 4 ላይ ይታያል።
ደረጃ 4: ያዋቅሩ
ይህ ወረዳ ሁሉንም ነገር እንዴት ማገናኘት እንደሚቻል ያሳያል። የኖኪያ ኤልሲዲ ከተለያዩ ግንኙነቶች ጋር ይገኛል ፣ የእርስዎን በትክክል ማገናኘትዎን ያረጋግጡ። እንዲሁም የተለያዩ ስሪቶቹ ሮታሪ ኢንኮደር ፣ አንዳንዶቹ በመካከለኛው ፒን ላይ ሌሎች የተለመዱ አይደሉም። የመቀየሪያውን የ A እና B የውጤት ምልክቶችን ለማጣራት ትንሽ የማጣሪያ አውታር (470 Ohm resistor ከ 100nF ካፕ ጋር) አስቀምጫለሁ። ውጤቱ ብዙ ጫጫታ ስላለው ይህንን ማጣሪያ እፈልጋለሁ። እኔ ደግሞ አንዳንድ ጫጫታዎችን ለመሰረዝ በፕሮግራሜ ውስጥ የማስወገጃ ሰዓት ቆጣሪ አደርጋለሁ። በቀሪው ወረዳው ግልፅ ይመስለኛል። ኤልሲዲው በአዳፍ ፍሬዝ በኩል https://www.adafruit.com/product/338 በኩል ሊታዘዝ ይችላል።
ደረጃ 5 - ፕሮግራሙ
ለባለ 2 ሽቦ አውቶቡስ የ Wire.h ቤተ-መጽሐፍትን አካትቻለሁ። ኤልሲዲውን ለመጠቀም ከ https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library እንዲሁም Adafruit_GFX.h ቤተ-መጽሐፍት እዚህ ማውረድ የሚችለውን የአዳፍ ፍሬም ቤተ-መጽሐፍትን አካትቻለሁ https:// github። com/adafruit/Adafruit-GFX-Library.
#ያካትቱ
#ያካትቱ
#ያካትቱ
Adafruit_PCD8544 ማሳያ = Adafruit_PCD8544 (7, 6, 5, 4, 3);
እዚህ ሁሉንም ተለዋዋጮች ማየት ይችላሉ። ቀደም ሲል እንደተገለፀው ባይት ይቆጣጠሩ እና ባይት ያዝዙ። DeBounceTime በእርስዎ ኢንኮደር ላይ ባለው ጫጫታ ላይ በመመስረት ሊስተካከል ይችላል።
ባይት ማሰሮ [2] = {1, 1} ፤ ባይት መቆጣጠሪያByte = B0101000; // 7 ቢት ፣ ባይት ትእዛዝByte = B10101001; // የመጨረሻዎቹ 2 ቢት የ potmeter ምርጫ ነው። ባይት potValue [2]; int i = 0; int deBounceTime = 10; // በድምፅ const int encoder_A = 8 ላይ በመመስረት ይህንን እሴት ያስተካክሉ። const int encoder_B = 9; const int buttonPin = 2; ያልተፈረመ ረጅም newDebounceTime = 0; ያልተፈረመ ረጅም oldTime; ቡሊያን ተጭኗል = 0; ቡሊያን ቆጠራ = 1;
በማዋቀሩ ውስጥ ትክክለኛውን ፒን እገልጻለሁ እና የማይንቀሳቀስ ጽሑፍን በኤልሲዲ ላይ አደርጋለሁ
ባዶነት ማዋቀር () {Wire.begin (); Serial.begin (9600); pinMode (encoder_A ፣ INPUT); pinMode (encoder_B ፣ INPUT); pinMode (አዝራር ፒን ፣ ግቤት); newDebounceTime = ሚሊስ ();
display.begin ();
display.setContrast (50); display.clearDisplay (); display.setTextSize (1); display.setTextColor (ጥቁር); display.setCursor (0, 10); display.println ("POT 1 ="); display.setCursor (0, 22); display.println ("POT 2 ="); display.display ();
}
በሉፕው ውስጥ በመጀመሪያ ክፍተቱ ከ 500ms በላይ ከሆነ ፣ አዎ ፣ ኤልሲዲው ከተዘመነ ያረጋግጡ። ካልሆነ በአቃፊው ላይ ያለው ቁልፍ ምልክት ተደርጎበታል። የመቀየሪያ Buffer ከተጫኑ ይደውሉ። ከዚህ በኋላ ኢንኮደር ምልክት ይደረግበታል። ግብዓት 0 ዝቅተኛ ከሆነ (ሽክርክሪት ተገኝቷል) የግብዓት ቢን እፈትሻለሁ ፣ ግቤት ቢ 0 እኔ ድስት እጨምራለሁ ፣ ሌሎች እኔ እቀንስበታለሁ። ከዚህ በኋላ እሴቱ በሽቦ.write በኩል ወደ DS1803 ይላካል።
ባዶነት loop () {
ክፍተት ();
ከሆነ (digitalRead (buttonPin) == 1 && (pressed == 0)) {toggleBuffer ();} if (digitalRead (buttonPin) == 0) {pressed = 0;}
ከሆነ (digitalRead (encoder_A) == 0 && count == 0 && (millis () - newDebounceTime> deBounceTime)) {if (digitalRead (encoder_B) == 0) {pot ++; ከሆነ (ድስት > 25) {ማሰሮ = 25;}} ሌላ {ማሰሮ -; ከሆነ (ድስት <1) {ማሰሮ = 1;}} መቁጠር = 1; newDebounceTime = ሚሊስ ();
Wire.begin ማስተላለፍ (controlByte); // ማስተላለፍ ይጀምሩ
Wire.write (commandByte); // የ potmeters ምርጫ Wire.write (ማሰሮ [0] * 10); // 1 ኛ ባይት የሜትሮሜትር ውሂብ ላክ Wire.write (ማሰሮ [1] * 10); // የፖሜሜትር ውሂብ 2 ኛ ባይት ላክ Wire.endTransmission (); // ማስተላለፍ አቁም} ሌላ ከሆነ (digitalRead (encoder_A) == 1 && digitalRead (encoder_B) == 1 && count == 1 && (millis () - newDebounceTime> deBounceTime)) {count = 0; newDebounceTime = ሚሊስ (); }}
ባዶ toggleBuffer () {ተጫነ = 1; ከሆነ (i == 0) {i = 1;} ሌላ {i = 0;}}
መጀመሪያ ልዩነቶችን መጻፍ ያለብኝን ቦታ አጸዳለሁ። በዚህ አካባቢ አራት ማዕዘን ለመሳል ይህንን አደርጋለሁ። ከዚያ በኋላ ተለዋዋጮችን ወደ ማያ ገጹ እጽፋለሁ።
ባዶ ጽሑፍToLCD () {Wire.requestFrom (controlByte ፣ 2); potValue [0] = Wire.read (); // የመጀመሪያውን የ potmeter byte potValue ያንብቡ [1] = Wire.read (); // ሁለተኛውን የ potmeter byte display.fillRect (40 ፣ 0 ፣ 40 ፣ 45 ፣ WHITE) ያንብቡ። // በኤልሲዲ ማሳያ ላይ ግልጽ ተለዋዋጭ ማያ ገጽ ።setCursor (40 ፣ 10) ፤ display.print (potValue [0]); // 1 ኛ የሜትርሜትር እሴት ለኤልሲዲ ማሳያ ይፃፉ። ቅንጅቶች (40 ፣ 22) ፤ display.print (potValue [1]); // ለኤችዲዲ ማሳያ የ 2 ኛ ፖሜሜትር እሴት ይፃፉ። setCursor (60 ፣ (10 + i * 12)) ፤ display.print ("<"); display.display (); }
ባዶ ክፍተት () {// የጊዜ መቁጠሪያ ሰዓት ቆጣሪ ((ሚሊስ () - oldTime)> 500) {writeToLCD () ከሆነ ፣ oldTime = ሚሊስ (); }}
የሚመከር:
MCP41HVX1 ዲጂታል ፖታቲሞሜትር ለአርዱዲኖ 10 ደረጃዎች (ከስዕሎች ጋር)
MCP41HVX1 ዲጂታል ፖታቲሞሜትር ለአርዱዲኖ - የ MCP41HVX1 ዲጂታል ፖታቲዮሜትር ቤተሰብ (aka DigiPots) የአናሎግ ፖታቲሞሜትር ተግባርን የሚመስሉ እና በ SPI ቁጥጥር ስር ያሉ መሣሪያዎች ናቸው። ምሳሌ ትግበራ በስቴሪዮዎ ላይ ያለውን የድምፅ ቁልፍ በ DigiPot በሚተካ
ዲጂታል ካሊፐር እንዴት እንደሚፈርስ እና ዲጂታል ካሊፐር እንዴት እንደሚሰራ 4 ደረጃዎች
ዲጂታል ካሊፐር እንዴት እንደሚፈርስ እና ዲጂታል ካሊፐር እንዴት እንደሚሰራ - ብዙ ሰዎች መለኪያዎችን ለመለካት እንዴት እንደሚጠቀሙ ያውቃሉ። ይህ መማሪያ ዲጂታል መለያን እንዴት እንደሚፈርስ እና ዲጂታል ካሊፐር እንዴት እንደሚሠራ ማብራሪያን ያስተምርዎታል
ባለሁለት ዘንግ ጆይስቲክን ከአርዱዲኖ ኡኖ ጋር እንዴት ማገናኘት እንደሚቻል -5 ደረጃዎች
ባለሁለት ዘንግ ጆይስቲክን ከአርዱዲኖ ኡኖ ጋር እንዴት ማገናኘት እንደሚቻል -እዚህ አንድ ባለ ሁለት ዘንግ ጆይስቲክን ከአርዱዲኖ ኡኖ ጋር እናገናኛለን። ይህ ጆይስቲክ ለ x ዘንግ እና y ዘንግ እና ለመቀያየር አንድ ዲጂታል ፒን ሁለት አናሎግ ፒን አለው
ክላኬታ ዲጂታል ኮን አርዱዲኖ (ዲጂታል ክላፐርቦርድ ከአርዱዲኖ ጋር) - 7 ደረጃዎች
Claqueta Digital Con Arduino (Digital Clapperboard With Arduino): Crea tu propia claqueta digital, también puedes convertir una claqueta no digital en una, utilizando Arduino.MATERIALES ማሳያ de 7 segmentos MAX7219 de 8 digitos ተስማሚ con arduino.Modulo de Reloj RTC ሞዴል DS3231 ተኳሃኝ con arduino.Arduin
የምዕራባዊ ዲጂታል ባለሁለት-አማራጭ የዩኤስቢ ማቀፊያ እንዴት እንደሚከፍት 5 ደረጃዎች
የምዕራባዊ ዲጂታል ባለሁለት-አማራጭ የዩኤስቢ ማቀፊያ እንዴት እንደሚከፍት የምዕራባዊው ዲጂታል ባለሁለት-አማራጭ የዩኤስቢ መከለያዎች መረጃን (ከፍተኛ የውጤት ጫማ sneakernet) ለመሸከም ወይም የውሂብዎ ከመስመር ውጭ ምትኬዎችን ለመሥራት ምቹ መሣሪያዎች ናቸው። አቅሙ ዝቅተኛ ፣ ወይም ድራይቭዎ ሊሞት ይችላል