I prepared all the components based on the instructions; however, when I upload the example code provided on "prep-component" page (test example for the Adafruit Trellis w/HT16K33), none of the leds mounted on the trellis board functions. I believe all the required libraries are installed in the right place. I have tried bunch of different versions of Arduino IDE, but there is no luck. I'm using version 1.8.12 currently, and ensuring Tools > Board > Arduino Leonardo is selected and programmer is set to USBTinyISP. Here is the code just in case:
Code: Select all
/***************************************************
This is a test example for the Adafruit Trellis w/HT16K33
Designed specifically to work with the Adafruit Trellis
----> https://www.adafruit.com/products/1616
----> https://www.adafruit.com/products/1611
These displays use I2C to communicate, 2 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
MIT license, all text above must be included in any redistribution
****************************************************/
#include <Wire.h>
#include "Adafruit_Trellis.h"
/***************************************************
This example shows reading buttons and setting/clearing buttons in a loop
"momentary" mode has the LED light up only when a button is pressed
"latching" mode lets you turn the LED on/off when pressed
Up to 8 matrices can be used but this example will show 4 or 1
****************************************************/
#define MOMENTARY 0
#define LATCHING 1
// set the mode here
#define MODE LATCHING
Adafruit_Trellis matrix0 = Adafruit_Trellis();
// uncomment the below to add 3 more matrices
/*
Adafruit_Trellis matrix1 = Adafruit_Trellis();
Adafruit_Trellis matrix2 = Adafruit_Trellis();
Adafruit_Trellis matrix3 = Adafruit_Trellis();
// you can add another 4, up to 8
*/
// Just one
Adafruit_TrellisSet trellis = Adafruit_TrellisSet(&matrix0);
// or use the below to select 4, up to 8 can be passed in
//Adafruit_TrellisSet trellis = Adafruit_TrellisSet(&matrix0, &matrix1, &matrix2, &matrix3);
// set to however many you're working with here, up to 8
#define NUMTRELLIS 1
#define numKeys (NUMTRELLIS * 16)
// Connect Trellis Vin to 5V and Ground to ground.
// Connect the INT wire to pin #A2 (can change later!)
#define INTPIN A2
// Connect I2C SDA pin to your Arduino SDA line
// Connect I2C SCL pin to your Arduino SCL line
// All Trellises share the SDA, SCL and INT pin!
// Even 8 tiles use only 3 wires max
void setup() {
Serial.begin(9600);
Serial.println("Trellis Demo");
// INT pin requires a pullup
pinMode(INTPIN, INPUT);
digitalWrite(INTPIN, HIGH);
// begin() with the addresses of each panel in order
// I find it easiest if the addresses are in order
trellis.begin(0x70); // only one
// trellis.begin(0x70, 0x71, 0x72, 0x73); // or four!
// light up all the LEDs in order
for (uint8_t i=0; i<numKeys; i++) {
trellis.setLED(i);
trellis.writeDisplay();
delay(50);
}
// then turn them off
for (uint8_t i=0; i<numKeys; i++) {
trellis.clrLED(i);
trellis.writeDisplay();
delay(50);
}
}
void loop() {
delay(30); // 30ms delay is required, dont remove me!
if (MODE == MOMENTARY) {
// If a button was just pressed or released...
if (trellis.readSwitches()) {
// go through every button
for (uint8_t i=0; i<numKeys; i++) {
// if it was pressed, turn it on
if (trellis.justPressed(i)) {
Serial.print("v"); Serial.println(i);
trellis.setLED(i);
}
// if it was released, turn it off
if (trellis.justReleased(i)) {
Serial.print("^"); Serial.println(i);
trellis.clrLED(i);
}
}
// tell the trellis to set the LEDs we requested
trellis.writeDisplay();
}
}
if (MODE == LATCHING) {
// If a button was just pressed or released...
if (trellis.readSwitches()) {
// go through every button
for (uint8_t i=0; i<numKeys; i++) {
// if it was pressed...
if (trellis.justPressed(i)) {
Serial.print("v"); Serial.println(i);
// Alternate the LED
if (trellis.isLED(i))
trellis.clrLED(i);
else
trellis.setLED(i);
}
}
// tell the trellis to set the LEDs we requested
trellis.writeDisplay();
}
}
}
Then, I decided to follow the rest of the instructions for building Mini Untztrument, https://learn.adafruit.com/mini-untztru ... r/software, installed Teensyduino (Version 1.53), and managed to install TeeOnArdu from the Boards Manager. Then I uploaded this code to Arduino Leonardo using Board: Leo on TeensyCore and Usb Type: MIDI under tools menu. I tested the midi messages on this website https://www.onlinemusictools.com/webmiditest/, 4 potentiometers functions perfectly; however trellis still doesn't function at all. Could you please help me figure out what's wrong? I read anything that I could find online that is related to Mini Untztrument/Trellis, and tried various combinations of different Arduino IDE and Teensyduino versions on both Windows and Macos running computers.
Thanks in advance,
Koray