Ik ben bezig om een afstandsbediening te maken met ESPNOW met meerdere ESP8266's. Bij de zender gebruik ik een potmeter (Joystick) waar ik de waarde van uitlees met een ADS1115. Nu valt het me op dat als ik niets doe aan schakeling of potmeterstand en alleen de resetknop van de ESP indruk en loslaat, de ingelezen range van waarden veranderd. 4300-4700, 4487-4661, 4330-4623, 4512-4668 etc. etc.
Als ik dezelfde potmeter in dezelfde schakeling uitlees via A0 (analoog 0) krijg ik 528-530 elke keer te zien. De ingangsspanning voor de potmeter is vrij stabiel. 3.3V via ESP8266.
Het is net alsof de 16 bits ADS115 onstabiel is is het omzetten van analoog naar I2C.
Ik heb 2x ADS1115 en beide vertonen dat gedrag.
Is dat normaal bij de ADS1115? Waardoor kan zoiets komen? Op deze wijze kan ik de potmeter niet gebruiken in de afstandsbediening.
Op zaterdag 7 december 2024 13:58:52 schreef krommevolt:
Ik ben bezig om een afstandsbediening te maken met ESPNOW met meerdere ESP8266's. Bij de zender gebruik ik een potmeter (Joystick) waar ik de waarde van uitlees met een ADS1115. Nu valt het me op dat als ik niets doe aan schakeling of potmeterstand en alleen de resetknop van de ESP indruk en loslaat, de ingelezen range van waarden veranderd. 4300-4700, 4487-4661, 4330-4623, 4512-4668 etc. etc.Als ik dezelfde potmeter in dezelfde schakeling uitlees via A0 (analoog 0) krijg ik 528-530 elke keer te zien. De ingangsspanning voor de potmeter is vrij stabiel. 3.3V via ESP8266.
Het is net alsof de 16 bits ADS115 onstabiel is is het omzetten van analoog naar I2C.
Ik heb 2x ADS1115 en beide vertonen dat gedrag.
Is dat normaal bij de ADS1115? Waardoor kan zoiets komen? Op deze wijze kan ik de potmeter niet gebruiken in de afstandsbediening.
Vrij stabiel??? Wat bedoel je daarmee? Als je een cpu een reset geeft gaat een cpu na de reset even heel hard werken. De voedingsspanning van de cpu kan dan even wat in elkaar storten. Misschien gebeurt hetzelfde met die vrij stabiele potmeterspanning.
De Kees bedankt voor je antwoord. Wellicht moet ik kijken voor een versie van een andere leverancier.
EX-fietser, dacht ik wel aan maar als de schakeling dan werkt moeten de waarden weer naar waarden gaan die overeenkomen. Dat gebeurde wel volgens de A0 uitlezing maar niet via de I2C gelezen waarden van de ADS1115. Na de reset bleef de waarde van de A0 vrijwel gelijk aan de waarden van net na de vorige reset. Bij de ADS1115 werd de hele range veranderd.
Ik denk daarom dat het niet de rimpeling is net na de potmeter maar eerder de ADnaar IIC van de ADS1115.
Dit is naar mijn ervaring een goede (edoch trage) ADC, maar onhandig voor het uitlezen van een potmeter omdat:
Dit maakt dat een extra referentiespanning nodig is, met de gewenste kwaliteit, om een potmeter uit te kunnen lezen.
Als de referentie van de adc op de pot gezet kan worden vermijd men dat, en is de meting van de potmeter positie onafhankelijk van de referentiespanning. Dan is de voedingsspanning soms al goed genoeg, zie bijvoorbeeld bij Arduinoes.
[edit]
De referentiespanning van de pot met een extra kanaal mee samplen kan, maar mogelijk is deze adc te traag om de forse interferentie van de ESP te onderdrukken.
[ Terzijde ]
De adc van de ESP8266's is best goed, MITS er geen Wifi actief is. Hij heeft in deze context wel de juiste referentie. De hoofdfunctie is gerelateerd aan de Wifi.
Zonder Wifi haalt men 1 kHz, met Wifi aan nog 100 Hz en er verschijnen pulsen van wel 20 ticks in het signaal. Zie de blauwe lijn in ondestaand plaatje. De rode lijn is iets anders, en hier niet relevant.
@Aart : Dat is wel een puntje.
De A/D converter van de ESP varieert met de voedings-spanning en dus is de uitlezing alleen afhankelijk van de stand van de potmeter. Bij een hogere voeding worden ook de ADC stappen groter.
De ADS1115 heeft een eigen -vaste- referentiespanning. Dus als de voeding van de potmeter verandert krijg je ook een andere uitlezing uit de ADS1115.
benleentje
Golden Member
Vroeger werd er met het meten via een ADC een truckje uitgehaald, er werd om de zoveel keer uitgelezen vanaf een externe referentie en daarna de gnd. In mijn meter gebeurt dat met een relais en dat hoor je dan continu tikken maar daar is die voor gemaakt. Door steeds de referentie uit te lezen en dan daarna die weer in software als soort kalibratie te gebruiken heb je minder last van drift.
Meeste ADC zijn gewoon een soort comperators ze vergelijken de onbekende spanning met een referentie. Maar moet je een ADS115 niet ook eerst nullen en die waarde in een register zetten want als daar steeds een andere waarde word ingezet zou ook de uitleesfout kunnen verklaren. Maar ik denk dat je wat dieper in de werken van de ADS1115 moet gaan kijken want het zal vast ook wel in de datasheet staan.
[Bericht gewijzigd door benleentje op (34%)]
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op zaterdag 7 december 2024 13:58:52 schreef krommevolt:
Het is net alsof de 16 bits ADS115 onstabiel is is het omzetten van analoog naar I2C.
Ik ben hier bezig met een project met een ADS1115 er in. Ik vind de resultaten ERG mooi stabiel voor een 16 bit ADC.
ad: 0x00d7 (215) [c183]
ad: 0x00d6 (214) [c183]
ad: 0x00d7 (215) [c183]
ad: 0x00d7 (215) [c183]
ad: 0x00d6 (214) [c183]
ad: 0x00d6 (214) [c183]
ad: 0x00d7 (215) [c183]
ad: 0x00d6 (214) [c183]
ad: 0x00d6 (214) [c183]
Ik bied 5.9V aan op een 1:veel spanningsdeler, Ik heb de "full scale range" nog op 6.144V staan. De c183 is het config/statusregister .
WEL heb ik het probleem dat de ingangsimpedantie van de AD1115 VEEL lager lijkt te zijn dan verwacht. Ik snap niet goed hoe dat komt. (Hij lijkt ongeveer 20k te zijn...)
Ik gebruik die ads1115 ook en zie geen variatie wanneer dat niet gewenst is. Heb je lange draden aan je potmeter ?
Hoe voed je de potmeter?
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Als het echt instabiel is heb je waarschijnlijk toch een slechte ontkoppeling of een beroerde print layout.
Post eens een foto waar alles op zit?
Paulinha_B
Honourable Member
"Ik spreek Spaans tegen God, Italiaans tegen de vrouwen, Frans tegen mannen en Duits tegen mijn paard." Dixit Carlos V, Römisch-deutscher Kaiser
Zonder veel concrete info gaan mijn verdenkingen ook naar de voeding. De meeste A/D-converters hebben toch een Vref-uitgang, die daarvoor kan dienen? Maar deze ADS1115 blijkt dat niet te hebben, vreemd.
Ik zou overwegen een plaatselijke 3,3V= voeding te maken, van de vereiste stabiliteit en nauwkeurigheid, enkel voor het voeden van de A/D-converter en wat er zoal rond hangt.
En verder inderdaad eens kritisch naar het printontwerp kijken, het gaat hier om kleine gevoelige signaaltjes.
Heren,
Heel veel dank voor uw meedenken. Ik heb alles momenteel op een breadbord en als ik er dinsdag aan toe kom zal ik een foto van het geheel maken. Voeding kan de uitdaging zijn maar waarom lijkt het stabiel als ik de waarden via analoog A0 van de ESP inlees.
Ik voed de schakeling nu via de PC USB en het breadbord heeft een eigen 12V adapter en een voltage regelaar naar 5V. Die gebruik ik momenteel niet. Via de PC usb en serial monitor kan ik mooi de waarden uitlezen.
Juist dat verschil tussen inlezen met de DSL1115 en inlezen via A0 verbaast me.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Als de voedingsspanning zeg tussen 3.2 en 3.4 varieert, zie je op de ESP input... precies geen variatie.
Als je potmeter halverwege staat, meet je 512/1024, of de voeding nu 3.2 of 3.4 is.
Maar de ADS1115 meet dan ineens heel verschillende waardes.
henri62
1-st law of Henri: De wet van behoud van ellende. 2-nd law of Henri: Ellende komt nooit alleen.
Een ADC en een breadboard gaan over het algemeen niet samen, veel te gevoelig voor storingen en allerlei zaken. Het minste of geringste grounding probleem zie je overal terug.
Toevoeging op rew: omdat de Vref van de A/D in de ESP (een afgeleide van) de voedingsspanning is, vallen variaties in de voedingsspanning weg in het A/D resultaat. Dit is de situatie die je voor het inlezen van een potmeter wilt hebben. De 1115 heeft een Vref die onafhankelijk is van de voedingsspanning. Daarom zie je de variaties in de voeding terug in het A/D resultaat. Stel dat de 1115 een Vref uitgang had, en je zou die op je potmeter aansluiten, dan was het probleem opgelost.
Zoals beloofd de foto.
Iedereen bedankt voor het meedenken en uitleggen.
Inmiddels snap ik het verschil tussen de waarden ingelezen met de ADS1115 en analoog 0.
Ook snap ik dat de USB voedingspanning van de PC die alles van spanning voorziet behoorlijk kan variëren. Ik moet nog uitzoeken of de ESP8266 de 3.3V stabiel levert of dat die ook schommelt.
Als ik de zender wil gaan voeden met IKEA oplaadbare batterijen, zal er dan ook een voltage verschil optreden, vermoed ik.
Verder moet ik eens gaan nadenken hoe ik de analoge waarden (er moeten er nog meer bij komen) dan netjes bij de ESP kan krijgen. Ik hoopte via I2C maar de 74HC4067 is ook een oplossing, ben ik wel meteen meer GPIO's kwijt.
Ik begin te denken dat het aan de library ligt. Nu met "ADS1X15.h" krijg ik een betere reeks dan met de <DFRobot_ADS1115.h> library.
Nog wat meer testen doen maar de eerste data ziet er veel belovend uit.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op zaterdag 7 december 2024 14:14:22 schreef Ex-fietser:
[... ADS1115 .... stabiel]
Vrij stabiel???
Ja. Ik vind de ADS1115 behoorlijk stabiel. Ik heb een eigen "channel select" gemaakt en heb 72 uur lang ieder uur drie spanningen gemeten die niet zou moeten veranderen. Ik meet ieder uur 3 verschillende spanningen, dus "geen nieuwe data" of dat soort domme fouten zijn uitgesloten. Ik zie 1, hooguit 2 LSB verschil tussen de verschillende metingen. Maar ik ben geinteresseerd in de absolute spanning.
Voor het meten van een potmeter die gevoed wordt vanuit de 3.3V wil je eigenlijk een relatieve meting. Met de ADS1115 kan je gewoon de 3.3V aan een input hangen en gewoon ook die meten. De vraag is alleen of de 3.3V stabiel genoeg is om de "relatieve" meting nauwkeurig te krijgen.
Een experiment wat je zeker kan doen is om gewoon 1000x achter mekaar de 3.3V te meten en te kijken wat je dan meet. Wat voor variatie zie je?
Misschien moet je de potmeter en "virtuele 3.3V" achter een RC filter zetten, waarbij je zeg 10% over de R accepteert.
Met 10k als meet-pot, krijg je dan 1k als R in de RC. En dan wil je iets van 10uF of 100uF om de boel lekker stabiel te krijgen in het tijddomein van 2 a 3 metingen van de ADS1115.
Ex-fietser,
Bedankt voor je antwoord.
Ik heb een skech waarbij de ingelezen waarden worden opgeslagen in minimaal en maximale waarden. Dat laat ik meestal ongeveer een minuut draaien op de esp8266 en die waarden noteer ik. Vervolgens reset ik de esp8266 en laat het geheel weer zijn kunstje doen. Na 3x dat uitgevoerd te hebben weet ik vrijgoed wat de minimale waarde en maximale waarde van de joystick in rust zijn. Vervolgens bij maximale uitslag nog een keer die test.
In totaal 5x voor 1 joystick. Ik hoef eigenlijk van de maximum uitslag onder naar maximum uitslag boven maar 7 standen te berekenen. Joystik midden is rust, Dan naar onder wordt "kruipen" "normaal" en "snel" achteruit". Dat ook vooruit, links en rechts.
Het gaat mij dus niet om juiste voedingspanning waarden maar om getallen waar ik 7 functies in één joystick bediening (hoog laag) mee kan aansturen.
De vorige keer ging het na de 1e reset al verkeerd. De waarden waren compleet anders. Nu met de Adafruit library blijven de waarden in de buurt.
Ex-fietser,
Bedankt voor je antwoord.
Ik heb een skech waarbij de ingelezen waarden worden opgeslagen in minimaal en maximale waarden. Dat laat ik meestal ongeveer een minuut draaien op de esp8266 en die waarden noteer ik. Vervolgens reset ik de esp8266 en laat het geheel weer zijn kunstje doen. Na 3x dat uitgevoerd te hebben weet ik vrijgoed wat de minimale waarde en maximale waarde van de joystick in rust zijn. Vervolgens bij maximale uitslag nog een keer die test.
In totaal 5x voor 1 joystick. Ik hoef eigenlijk van de maximum uitslag onder naar maximum uitslag boven maar 7 standen te berekenen. Joystick midden is rust, Dan naar onder wordt "kruipen" "normaal" en "snel" achteruit". Dat ook vooruit, links en rechts.
Het gaat mij dus niet om juiste voedingspanning waarden maar om getallen waar ik 7 functies in één joystick bediening (hoog laag) mee kan aansturen.
De vorige keer ging het na de 1e reset al verkeerd. De waarden waren compleet anders. Nu met de Adafruit library blijven de waarden in de buurt.
benleentje
Golden Member
Jammer dat er zulke slechte library's bestaan daar gaat weer een hoop tijd inzitten alleen maar vanwege een slecht stukje software van een ander