Problema a far funzionare l'MCP4728
0
voti
GioArca67 ha scritto:Ma cosa devi fare? Perché non includi la libreria invece di copiare pezzettini?
Cosa devo includere di preciso? Non so cosa devo mettere dopo "#include"
0
voti
Ho usato questo codice:
e questo è l'errore:
- Codice: Seleziona tutto
#include <Wire.h>
#include <MCP4728.h>
MCP4728 mcp;
void setup(void) {
Serial.begin(115200);
while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("Adafruit MCP4728 test!");
// Try to initialize!
if (!mcp.begin(0x60)) { //indirizzo del MCP4728, da 0x60 a 0x68, default se omesso a 0x60
Serial.println("Failed to find MCP4728 chip");
while (1) {
delay(10);
}
}
Serial.println("MCP4728 chip found");
mcp.setChannelValue(MCP4728_CHANNEL_A, 4095);
mcp.setChannelValue(MCP4728_CHANNEL_B, 2048);
mcp.setChannelValue(MCP4728_CHANNEL_C, 1024);
mcp.setChannelValue(MCP4728_CHANNEL_D, 0);
}
e questo è l'errore:
- Codice: Seleziona tutto
Arduino:1.8.10 (Linux), Scheda:"Arduino Yún"
/home/fabio/Scrivania/fade_2/fade_2.ino: In function 'void setup()':
fade_2:15:12: error: 'class MCP4728' has no member named 'begin'
if (!mcp.begin(0x60)) { //indirizzo del MCP4728, da 0x60 a 0x68, default se omesso a 0x60
^~~~~
fade_2:22:7: error: 'class MCP4728' has no member named 'setChannelValue'
mcp.setChannelValue(MCP4728_CHANNEL_A, 4095);
^~~~~~~~~~~~~~~
fade_2:22:23: error: 'MCP4728_CHANNEL_A' was not declared in this scope
mcp.setChannelValue(MCP4728_CHANNEL_A, 4095);
^~~~~~~~~~~~~~~~~
/home/fabio/Scrivania/fade_2/fade_2.ino:22:23: note: suggested alternative: 'MCP4728_H'
mcp.setChannelValue(MCP4728_CHANNEL_A, 4095);
^~~~~~~~~~~~~~~~~
MCP4728_H
fade_2:23:7: error: 'class MCP4728' has no member named 'setChannelValue'
mcp.setChannelValue(MCP4728_CHANNEL_B, 2048);
^~~~~~~~~~~~~~~
fade_2:23:23: error: 'MCP4728_CHANNEL_B' was not declared in this scope
mcp.setChannelValue(MCP4728_CHANNEL_B, 2048);
^~~~~~~~~~~~~~~~~
/home/fabio/Scrivania/fade_2/fade_2.ino:23:23: note: suggested alternative: 'MCP4728_H'
mcp.setChannelValue(MCP4728_CHANNEL_B, 2048);
^~~~~~~~~~~~~~~~~
MCP4728_H
fade_2:24:7: error: 'class MCP4728' has no member named 'setChannelValue'
mcp.setChannelValue(MCP4728_CHANNEL_C, 1024);
^~~~~~~~~~~~~~~
fade_2:24:23: error: 'MCP4728_CHANNEL_C' was not declared in this scope
mcp.setChannelValue(MCP4728_CHANNEL_C, 1024);
^~~~~~~~~~~~~~~~~
/home/fabio/Scrivania/fade_2/fade_2.ino:24:23: note: suggested alternative: 'MCP4728_H'
mcp.setChannelValue(MCP4728_CHANNEL_C, 1024);
^~~~~~~~~~~~~~~~~
MCP4728_H
fade_2:25:7: error: 'class MCP4728' has no member named 'setChannelValue'
mcp.setChannelValue(MCP4728_CHANNEL_D, 0);
^~~~~~~~~~~~~~~
fade_2:25:23: error: 'MCP4728_CHANNEL_D' was not declared in this scope
mcp.setChannelValue(MCP4728_CHANNEL_D, 0);
^~~~~~~~~~~~~~~~~
/home/fabio/Scrivania/fade_2/fade_2.ino:25:23: note: suggested alternative: 'MCP4728_H'
mcp.setChannelValue(MCP4728_CHANNEL_D, 0);
^~~~~~~~~~~~~~~~~
MCP4728_H
Più di una libreria trovata per "Wire.h"
Usata: /home/fabio/.arduino15/packages/arduino/hardware/avr/1.8.3/libraries/Wire
Più di una libreria trovata per "MCP4728.h"
Usata: /home/fabio/Arduino/libraries/MCP4728-master
exit status 1
'class MCP4728' has no member named 'begin'
0
voti
Prova questo
- Codice: Seleziona tutto
#include <Wire.h>
#include "MCP4728.h"
MCP4728 dac;
void setup()
{
Serial.begin(115200); // initialize serial interface for print()
Wire.begin();
dac.attach(Wire, 14);
dac.readRegisters();
dac.selectVref(MCP4728::VREF::VDD, MCP4728::VREF::VDD, MCP4728::VREF::INTERNAL_2_8V, MCP4728::VREF::INTERNAL_2_8V);
dac.selectPowerDown(MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_100KOHM, MCP4728::PWR_DOWN::GND_500KOHM, MCP4728::PWR_DOWN::GND_500KOHM);
dac.selectGain(MCP4728::GAIN::X1, MCP4728::GAIN::X1, MCP4728::GAIN::X2, MCP4728::GAIN::X2);
dac.analogWrite(MCP4728::DAC_CH::A, 111);
dac.analogWrite(MCP4728::DAC_CH::B, 222);
dac.analogWrite(MCP4728::DAC_CH::C, 333);
dac.analogWrite(MCP4728::DAC_CH::D, 444);
dac.enable(true);
dac.readRegisters();
printStatus();
delay(5000);
}
void loop()
{
static int count = 0;
if (++count > 4000) count = 0;
dac.analogWrite(count, count, count, count);
delay(10);
dac.readRegisters();
printStatus();
}
void printStatus()
{
Serial.println("NAME Vref Gain PowerDown DACData");
for (int i = 0; i < 4; ++i)
{
Serial.print("DAC");
Serial.print(i, DEC);
Serial.print(" ");
Serial.print(" ");
Serial.print(dac.getVref(i), BIN);
Serial.print(" ");
Serial.print(dac.getGain(i), BIN);
Serial.print(" ");
Serial.print(dac.getPowerDown(i), BIN);
Serial.print(" ");
Serial.println(dac.getDACData(i), DEC);
Serial.print("EEPROM");
Serial.print(i, DEC);
Serial.print(" ");
Serial.print(dac.getVref(i, true), BIN);
Serial.print(" ");
Serial.print(dac.getGain(i, true), BIN);
Serial.print(" ");
Serial.print(dac.getPowerDown(i, true), BIN);
Serial.print(" ");
Serial.println(dac.getDACData(i, true), DEC);
}
Serial.println(" ");
}
Chi c’è in linea
Visitano il forum: Nessuno e 1 ospite

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


