Guten Tag,
ich bin schon mit meinem Projekt ein gutes Stück voran gekommen. Es geht darum einen 16 Bit Absolutwinkelgeber auszulesen und die Werte auf einem Display anzuzeigen, mehr nicht.
Die Schaltung, denke ich, ist soweit i.O. , da ich die Werte vom jeweiligen IC übertragen bekomme, wenn ich mit dem Serial-Out auf den Pin 9 vom Nano gehe.
Nur in Reihe, also den Serial-Out vom ersten IC zum Serial-In des 2. IC und dessen Serial-Out zum Nano, bekomme ich nur Werte vom ersten IC.
Gefunden habe ich folgendes:
https://www.gammon.com.au/forum/?id=11979
... und da sind auch Teile meines Codes her.
Wie kann ich die beiden ShiftRegister in Reihe bringen?
Bitte kann mir eine hilfreiche Person auf die Sprünge helfen?
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const byte LATCH = 9;
int val = 0;
//byte switchBank1; // Register 1
//byte switchBank2; // Register 2
void setup ()
{
SPI.begin ();
pinMode (LATCH, OUTPUT);
digitalWrite (LATCH, HIGH);
lcd.init();
lcd.backlight();
lcd.print("Encoder:");
} // end of setup
int optionSwitch;
//byte oldOptionSwitch; // previous state
void loop ()
{
digitalWrite (LATCH, LOW); // pulse the parallel load latch
digitalWrite (LATCH, HIGH);
//switchBank1 = SPI.transfer (0);
//switchBank2 = SPI.transfer (0);
optionSwitch = SPI.transfer (0);
//switchBank1 = SPI.transfer (0);
lcd.setCursor(0, 1);
if (val<100000) lcd.print(' ');
if (val<10000) lcd.print(' ');
if (val<1000) lcd.print(' ');
if (val<100) lcd.print(' ');
if (val<10) lcd.print(' ');
lcd.setCursor(0, 1);
lcd.print (optionSwitch);
delay (100);
}