www.elektronik.si
DAC MCP4725 in ADC ADS1115 - uporaba v arduino nano

www.elektronik.si -> Arduino sekcija

Avtor: malciKraj: Polhov Gradec PrispevekObjavljeno: Pon Okt 29, 2018 6:38 pm    Naslov sporočila:  DAC MCP4725 in ADC ADS1115 - uporaba v arduino nano
----------------------------------------------------------------------------
Pozdravljeni!

Pri mojem projektu bi rad uporabil tako A/D ADS1115 <Adafruit_ADS1015.h> kot tudi D/A MCP4725 <Adafruit_MCP4725.h>

Vsako posebej mi lepo deluje, oba skupaj pa mi ne arduino ne prevede.
Četudi sem se izognil knjižnici <Adafruit_MCP4725.h>, mi program noče prevesti, takoj ko vključim ADS1115 library.

I2C naslovi so različni ( 0x48; 0x62)

Kakšna bi bila rešitev za nastalo težavo?

lp
Uroš

Avtor: igo PrispevekObjavljeno: Pon Okt 29, 2018 7:14 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Pripni program.

Na hitro sem preletel .cpp datoteko od ADS1115 in že ona vsebuje
#include wire.h .
Morda dvakraten #include zmede prevajalnik.
Javi kakšno napako ali opozorilo?
V nastavitvah Arduino okolja nastavi prikaz vsega in pripni izpisek.

Ali .ino samo za ADS1115 prav deluje?

Avtor: malciKraj: Polhov Gradec PrispevekObjavljeno: Pon Okt 29, 2018 7:54 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Ja, vsak .ino posebej deluje v redu, pče pa v enega združim oboje, pa ga ne prevede, javi napako. Uporabljam arduino nano pro.

Koda:
#include <Wire.h> // specify use of Wire.h library
#include <Adafruit_ADS1015.h>
#define MCP4725 0x62 // MCP4725 base address

unsigned int val;
byte buffer[3];

void setup()   {

  Wire.begin(); // begin I2C

}  // end setup

void loop() {

  buffer[0] = 0b01000000; // control byte
  val = analogRead(0) * 4; // read pot
  buffer[1] = val >> 4; // MSB 11-4 shift right 4 places
  buffer[2] = val << 4; // LSB 3-0 shift left 4 places

  Wire.beginTransmission(MCP4725); // address device
  Wire.write(buffer[0]);  // pointer
  Wire.write(buffer[1]);  // 8 MSB
  Wire.write(buffer[2]);  // 4 LSB
  Wire.endTransmission();

  // just an indicator
  digitalWrite(13, HIGH);
  delay(100);
  digitalWrite(13, LOW);
  delay(100);

} // end loop


Pri zgornjem primeru mi izpiše:
( samo sedajle gledam, da je v poročilu omenjen TinyWireM...???? - je to vredu, ali je to mogoče ostalo od enega prejšnega projekta, ko sem uporabljal software I2c na Attiny85?)

Koda:
Arduino:1.8.5 (Windows 7), Plošča:"Arduino Nano, ATmega328P"

C:\Users\Uros\Documents\Arduino\libraries\TinyWireM\USI_TWI_Master.cpp:23:0: warning: "F_CPU" redefined

 #define F_CPU 1000000UL       // Sets up the default speed for delay.h

 ^

<command-line>:0:0: note: this is the location of the previous definition

C:\Users\Uros\Documents\Arduino\libraries\TinyWireM\USI_TWI_Master.cpp: In function 'void USI_TWI_Master_Initialise()':

C:\Users\Uros\Documents\Arduino\libraries\TinyWireM\USI_TWI_Master.cpp:50:3: error: 'PORT_USI' was not declared in this scope

   PORT_USI |= (1<<PIN_USI_SDA);           // Enable pullup on SDA, to set high as released state.

   ^

C:\Users\Uros\Documents\Arduino\libraries\TinyWireM\USI_TWI_Master.cpp:50:19: error: 'PIN_USI_SDA' was not declared in this scope

   PORT_USI |= (1<<PIN_USI_SDA);           // Enable pullup on SDA, to set high as released state.

                   ^

C:\Users\Uros\Documents\Arduino\libraries\TinyWireM\USI_TWI_Master.cpp:51:19: error: 'PIN_USI_SCL' was not declared in this scope

   PORT_USI |= (1<<PIN_USI_SCL);           // Enable pullup on SCL, to set high as released state.

                   ^
........
\
\
........
         ^

C:\Users\Uros\Documents\Arduino\libraries\TinyWireM\USI_TWI_Master.cpp:329:21: error: 'USIPF' was not declared in this scope

   if( !(USISR & (1<<USIPF)) )

                     ^

exit status 1
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


Nazadnje urejal/a malci Tor Okt 30, 2018 6:04 pm; skupaj popravljeno 1 krat

Avtor: igo PrispevekObjavljeno: Pon Okt 29, 2018 10:23 pm    Naslov sporočila:  
----------------------------------------------------------------------------
To ni v redu.
V Arduino okolju nastavi pravi tip Arduinota (Nano, Mini, Uno, Mega, ...), ki ga uporabljaš.
Malo preleti zgornjo menujsko vrstico (nisem pri računalniku, da bi točno napisal, kam klikneš).
V istem sklopu menuja so tip kontrolerja, tip programatorja, številka Com porta, ... .

Avtor: malciKraj: Polhov Gradec PrispevekObjavljeno: Pon Okt 29, 2018 11:00 pm    Naslov sporočila:  
----------------------------------------------------------------------------
Ne, saj to imam pravilno nastavljeno, "Arduino pro or pro mini", prav takega, kot uporabljam. Sem poizkusil tudi z "Arduino mini", pa je bilo isto.

Tip programatorja je tudi pravi, čeprav to naj ne bi imelo vpliva pri prevajanju..
Samo tisti TinyWire mi ne gre iz glave. Če se ne motim, je bil aktualen pri software I2C, ki sem ga uporabljal pred cca 1 mesecem. Moram malo pobrskati po arhivu, če sem takrat kaj spreminjal knjižnice.

lp
Uroš

Avtor: Jaka57Kraj: Grosuplje PrispevekObjavljeno: Tor Okt 30, 2018 12:36 am    Naslov sporočila:  
----------------------------------------------------------------------------
malci meni prevede normalno (Arduino 1.8.1), s tem, da jaz nimam ekstra Wire knjižnjice,
ker je že v Arduino IDE vključena, še manj pa TinyWire.

Avtor: malciKraj: Polhov Gradec PrispevekObjavljeno: Tor Okt 30, 2018 7:02 am    Naslov sporočila:  
----------------------------------------------------------------------------
Jaka hvala. Dober podatek.
Sedaj vem v kateri smeri iskat dalje. Se bom popoldne poglobil v knjižnice in morebitne njihove spremembe....

Lp
Uroš


Nazadnje urejal/a malci Tor Okt 30, 2018 6:21 pm; skupaj popravljeno 1 krat

Avtor: malciKraj: Polhov Gradec PrispevekObjavljeno: Tor Okt 30, 2018 6:15 pm    Naslov sporočila:  
----------------------------------------------------------------------------
problem rešen, vsaj upam Smile

Težava je bila v spremenjeni <Adafruit_ADS1015.h> knjižnici, saj sem jo pred časom spremenil, da je delovala z software I2C. Pri Nano-tu pa imam original I2C vodilo.

Zakaj pa je problem nastal, samo če sem dodal še knjižnico za MCP4725, sicer pa ne, mi pa ni jasno.

lp
Uoš

Stran 1 od 1

Powered by phpBB © 2001,2002 phpBB Group