Schritt 3: Die Microcontroller-Schnittstelle
Ich habe nicht die richtige Kondensator-Werte verwenden, wenn die Jacke zu erstellen. Ich wollte keine Electrolytics im Mix. Die 6952 ist ein Chip, ziemlich elastisch und hat ziemlich gut zu meinem Missbrauch Stand.
Ich bin die Stromversorgung von der Boarduino direkt mit dem Netzteil 4AA und läuft dann 5v an der max6952.
Und hier einige Beispiel-Code für die Anbindung der Boarduino mit der max6952:
Max-6952-Beispiel-Code für Arduino
Auf Boarduino getestet
Matt Joyce @ NYC Widerstand
#define DATAOUT 11 / / MOSI
#define DATAIN 12 / / MISO - nicht verwendet, sondern Teil des Builtin SPI
#define SPICLOCK 13 / / Sck
#define SLAVESELECT 10 / / ss
Char Spi_transfer (volatile Char-Daten)
{
SPDR = Daten;
Starten Sie die Übertragung
während (! () SPSR & (1 << SPIF))) / / das Ende der Übertragung warten
{
};
Return SPDR; das empfangene Byte zurück
}
void setup()
{
Byte ich;
Byte Clr;
PinMode (DATAOUT, OUTPUT);
PinMode (DATAIN, Eingabe);
pinMode(SPICLOCK,OUTPUT);
pinMode(SLAVESELECT,OUTPUT);
digitalWrite(SLAVESELECT,HIGH); Gerät deaktivieren
SPCR = 01010000
Interrupt deaktiviert, Spi aktiviert, Msb 1., Master, Clk niedrigen Leerlauf,
Probe auf der Vorderkante des Clk, System Clock/4 (am schnellsten)
SPCR = 0b01010010;
CLR = SPDR;
Delay(32);
Register zu konfigurieren
write_led_twice(0x04,0x01);
Intensität Bereich 1 und 2 Bereich
write_led_twice(0x01,0xFF);
write_led_twice(0x02,0xFF);
Scan-Limit
write_led_twice(0x03,0x01);
}
Write_led Byte (Adresse Int, Int-Wert)
{
digitalWrite(SLAVESELECT,LOW);
2-Byte-opcode
spi_transfer(Address);
spi_transfer(Value);
Delay(36);
digitalWrite(SLAVESELECT,HIGH); Chip, release signalisieren Ende Übertragung
}
Schreib n mal n Chips verkettet.
Write_led_twice Byte (Adresse Int, Int-Wert)
{
digitalWrite(SLAVESELECT,LOW);
2-Byte-opcode
spi_transfer(Address);
spi_transfer(Value);
spi_transfer(Address);
spi_transfer(Value);
Delay(36);
digitalWrite(SLAVESELECT,HIGH); Chip, release signalisieren Ende Übertragung
}
void loop()
{
Testsatz ROM Charakter
write_led_twice(0x20,0x5e);
write_led_twice(0x21,0x5e);
write_led_twice(0x22,0x5e);
write_led_twice(0x23,0x5e);
Delay(4000);
Programmierbare RAM-Speicher testen
write_led_twice(0x05,0x80);
write_led_twice(0x05,0x42);
write_led_twice(0x05,0x61);
write_led_twice(0x05,0x51);
write_led_twice(0x05,0x49);
write_led_twice(0x05,0x46);
write_led_twice(0x20,0x80);
write_led_twice(0x21,0x80);
write_led_twice(0x22,0x80);
write_led_twice(0x23,0x80);
Delay(4000);
GRED Testanruf Register
write_led_twice(0x07,0x01);
Delay(1000);
Schalten Sie Test registrieren
write_led_twice(0x07,0X00);
}