OpenXsensor met Arduino Nano

5
(1)

Ik ben onlangs overgestapt van de Arduino Pro Mini’s naar de Nano vanwege verschillende dingen:

  • Stabiele klok @ 16Mhz met lage spanningen, nodig voor multi-in-one sensorconfiguratie.
  • 3.3v-uitgang, ook gebruikt voor VREF (referentiespanning voor analoge sensoren, spanning, stroom enz.)
  • Direct programmeerbaar via USB
  • Goedkoper dan Pro Mini’s

https://github.com/openXsensor/openXsensor

Een stroomsensor configureren voor gebruik met ETHOS

 

Een opmerking voor wie stroomsensoren wil bouwen voor gebruik met ETHOS.

Zoals voor nu, zendt OpenXsensor negatieve waarden rond 0 ampère uit.
Deze negatieve waarden worden in Ethos als ongeldig beschouwd.
Daarom zal Ethos uiteindelijk steeds sensor verloren aankondigingen.

Om dit te voorkomen, moeten we er zeker van zijn dat OpenXsensor alleen 0 of positieve waarden uitstuurt.

in het bestand: openXsensor/ oXs_out_frsky.cpp

Zoek naar het volgende op regel 597:

 

#if defined(ARDUINO_MEASURES_A_CURRENT) && (ARDUINO_MEASURES_A_CURRENT == YES)  
    if ( oXs_Current.currentData.milliAmps.available) {
      oXs_Current.currentData.milliAmps.available = false ; 
      sport_currentData.value = oXs_Current.currentData.milliAmps.value  / 100 ;
      sport_currentData.available = true ;
    }  
#elif defined(AN_ADS1115_IS_CONNECTED) && (AN_ADS1115_IS_CONNECTED == YES ) && defined(ADS_MEASURE) && defined(ADS_CURRENT_BASED_ON)
    if ( oXs_ads1115.adsCurrentData.milliAmps.available ) {
      oXs_ads1115.adsCurrentData.milliAmps.available = false ;
      sport_currentData.value = oXs_ads1115.adsCurrentData.milliAmps.value  / 100 ;
      sport_currentData.available = true ;
    }  
#endif

en verander het in:

#if defined(ARDUINO_MEASURES_A_CURRENT) && (ARDUINO_MEASURES_A_CURRENT == YES)  
    if ( oXs_Current.currentData.milliAmps.available) {
      oXs_Current.currentData.milliAmps.available = false ; 
      sport_currentData.value = oXs_Current.currentData.milliAmps.value  / 100 ;
      if (sport_currentData.value >= 0) {
        sport_currentData.available = true ;
      }
    }  
#elif defined(AN_ADS1115_IS_CONNECTED) && (AN_ADS1115_IS_CONNECTED == YES ) && defined(ADS_MEASURE) && defined(ADS_CURRENT_BASED_ON)
    if ( oXs_ads1115.adsCurrentData.milliAmps.available ) {
      oXs_ads1115.adsCurrentData.milliAmps.available = false ;
      sport_currentData.value = oXs_ads1115.adsCurrentData.milliAmps.value  / 100 ;
      if (sport_currentData.value >= 0) {
        sport_currentData.available = true ;
      }
    }  
#endif

 

 

 

Hoe nuttig was dit bericht?

Klik op een ster om deze te beoordelen!

Gemiddelde score 5 / 5. Aantal stemmen: 1

Tot nu toe geen stemmen! Wees de eerste die dit bericht beoordeelt.

Het spijt ons dat dit bericht niet nuttig voor u was!

Laten we dit bericht verbeteren!

Vertel ons hoe we dit bericht kunnen verbeteren?

Dit vind je misschien ook leuk...