Färg kalibrera RGB lysdioder med en Arduino (1 / 5 steg)
Steg 1: Problem och lösning
Du kommer inte att kunna få bra kalibrering av en enkel Arduino med trimmare därför: det finns inget lågpassfilter på AVCC ingång på Arduino styrelser, äkta eller inte. Den enda Arduino variant jag hittat som har det beskrivs i detta instructable.
På vanliga Arduinos förbinds den AVCC ingången direkt till den normala VCC ingång, vilket innebär spänningsfluktuationer när Arduino gör något annat samtidigt kontrollera analoga ingångar. Mer specifikt, leder detta till en massa oväsen i analogRead avläsningar när testet lysdioder är på.
Så du inte kommer att kunna installera en induktor på AVCC ingång på Arduino, måste du använda några andra bypass. Det finns tre enkla sätt att göra det.
1. sätt en 100nF kondensator mellan AREF stift och GND. I själva verket denna strategi är tydligt definierad i Atmega databladet, men på något sätt det gjorde inte det till Arduino docs. Det är en bra idé att förvara locket det om du använder ADC (analogReads) i ditt projekt, eftersom det gör behandlingen mer tillförlitliga. Men "säkrare" betyder inte "exakt" – har du fortfarande några buller, men inte en kritisk fråga. Framför allt, du fortfarande inte kommer att kunna få nollor och 1023s i produktionen, och i själva verket felen varierar varje gång du ansluter Arduino.
2. Använd en separat 5v strömförsörjning för ADC ingångar. Nämligen, ansluta den till järnväg som trimmare får deras 5v från; Glöm inte att ansluta GNDs av båda nätaggregat tillsammans. Se till att du ansluter externa behörighet efter att vrida på Arduino, bara i fall. Denna metod kommer att ge ännu bättre avläsningar, men vissa fel är möjligt på grund av skillnaden mellan exakta spänningar av två varor såsom (4.98v på Arduino) och 5.23v av externa leveranser. Denna metod är mer tillförlitliga, kommer du att kunna se 1023s och nollor, men blir det buller (kontrollera skärmbilden ovan).
Det är möjligt att ansluta denna yttre spänning till AREF stift, ställa in analogReference() till externa (således ändra registret ADMUX därmed). Ett varningens ord: Jag rekommenderar inte det som det är möjligt att skada Atmega chip om du gör något fel. Kontrollera anvisningarna här.
3. bästa resultat uppnås om två separata Arduinos används, en för ADC saker, andra för test lysdioder. Det kan se ut som en overkill, men i själva verket är det bästa alternativet av två skäl. För det första, de flesta av oss Arduino hobbyister har alltid en massa billiga kinesiska Nanos liggande, rätt? För det andra, och viktigare, är praxis att dedicera olika styrenheter till olika aktiviteter faktiskt en rekommenderade. Speciellt om dessa uppgifter är så olika som i vårt fall: en försöker få exakta resultat från en ganska svag Atmega ADC, de andra kör makthungriga lysdioderna. Kolla stadig utgången på skärmdumpen ovan.