Hur man skapar en öl flaska LED VU-Meter (14 / 17 steg)
Steg 14: "Dot läge" Animation
void Dot_Mode(void)
{
UInt16 nivå.
Level = (0xF0 & (uint16) PORTD) << 2.
nivå | = ((0xFC & PORTB) >> 2);
Switch (nivå)
{
fall 0x03FF: SPI_Send_595(0x000000C0); bryta;
fall 0x03DF: SPI_Send_595(0xE00000C0); bryta;
fall 0x03CF: SPI_Send_595(0x1C0000C0); bryta;
fall 0x03C7: SPI_Send_595(0x038000C0); bryta;
fall 0x03C3: SPI_Send_595(0x007000C0); bryta;
fall 0x03C1: SPI_Send_595(0x000E00C0); bryta;
fall 0x03C0: SPI_Send_595(0x0001C0C0); bryta;
fall 0x01C0: SPI_Send_595(0x000038C0); bryta;
fall 0x00C0: SPI_Send_595(0x000007C0); bryta;
fall 0x0040: SPI_Send_595(0x000000CC); bryta;
fall 0x0000: SPI_Send_595(0x000000C3); bryta;
}
}
För att göra någon annan animering, öppna upp VU mätare Data kalkylatorn och sedan vända den specifika lysdioder på eller av och kopiera och klistra in hex data i switch uttalande ovan. Sätta det hex värdet i någon av de SPI_Send_595 (* hex data *) och det kommer att lysa upp på att ljudnivån. Du kan göra en massa animeringar och har dem alla kontrolleras av växeln taktil (S2) på PCB. Göra det så att varje gång som du trycker på S2 volymmätaren (VU) ändras till en annan animering. Min PCB har inte en switch eller jag skulle ha gjort det, det är en annan funktion som jag lagt till PCB filer efter att jag hade redan samlat ihop min VU-Meter. Tja om du har gjort det till det här steget sedan Grattis, du har svept detta projekt!