NEWS
Ansteuerung eines Digital-Potentiometers (z.B. MCP4151)
-
Hallo Community,
hat vielleicht jemand Erfahrung in der Ansteuerung von Digital-Potentiometern mittels IoBroker und Raspberry? Ich versuche das Digi-Pot MCP4151 über seine SPI-Schnittstelle (Seriell Peripheral Interface) aus IoBroker heraus mittels JavaScript gemäß nachfolgendem Script anzusteuern, bekomme aber immer die Fehlermeldung "Error opening SPI-device". Vielleicht kann mir jemand helfen, die Fehlerursache zu beseitigen.const SpiDevice = require('/opt/iobroker/node_modules/spi-device/spi-device.js'); // Define the SPI configuration for the MCP4151 const spiConfig = { mode: SpiDevice.MODE0, // SPI mode 0 chipSelectHigh: false, // Active low CS maxSpeedHz: 20000, // Maximum SPI clock speed (1 MHz) }; // Define the MCP4151 command to set the potentiometer value const MCP4151_WRITE_COMMAND = 0x00; // Function to set the potentiometer value function setPotentiometerValue(spi, value) { const message = [{ sendBuffer: Buffer.from([MCP4151_WRITE_COMMAND, value]), byteLength: 2, }]; spi.transfer(message, (error) => { if (error) { console.error('SPI transfer error:', error); } else { console.log(`Potentiometer value set to ${value}`); } spi.close(() => { console.log('SPI device closed'); }); }); } // Open the SPI device const spi = SpiDevice.open(0, 0, spiConfig, (error) => { if (error) { // @ts-ignore console.error('Error opening Rie-SPI device:', error); } else { // Set the potentiometer value (0-255) const potValue = 128; // Change this to your desired value setPotentiometerValue(spi, potValue); } });MOD-EDIT: Code in code-tags gesetzt!
-
Hallo Community,
hat vielleicht jemand Erfahrung in der Ansteuerung von Digital-Potentiometern mittels IoBroker und Raspberry? Ich versuche das Digi-Pot MCP4151 über seine SPI-Schnittstelle (Seriell Peripheral Interface) aus IoBroker heraus mittels JavaScript gemäß nachfolgendem Script anzusteuern, bekomme aber immer die Fehlermeldung "Error opening SPI-device". Vielleicht kann mir jemand helfen, die Fehlerursache zu beseitigen.const SpiDevice = require('/opt/iobroker/node_modules/spi-device/spi-device.js'); // Define the SPI configuration for the MCP4151 const spiConfig = { mode: SpiDevice.MODE0, // SPI mode 0 chipSelectHigh: false, // Active low CS maxSpeedHz: 20000, // Maximum SPI clock speed (1 MHz) }; // Define the MCP4151 command to set the potentiometer value const MCP4151_WRITE_COMMAND = 0x00; // Function to set the potentiometer value function setPotentiometerValue(spi, value) { const message = [{ sendBuffer: Buffer.from([MCP4151_WRITE_COMMAND, value]), byteLength: 2, }]; spi.transfer(message, (error) => { if (error) { console.error('SPI transfer error:', error); } else { console.log(`Potentiometer value set to ${value}`); } spi.close(() => { console.log('SPI device closed'); }); }); } // Open the SPI device const spi = SpiDevice.open(0, 0, spiConfig, (error) => { if (error) { // @ts-ignore console.error('Error opening Rie-SPI device:', error); } else { // Set the potentiometer value (0-255) const potValue = 128; // Change this to your desired value setPotentiometerValue(spi, potValue); } });MOD-EDIT: Code in code-tags gesetzt!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden