Carte à clic 2x2
Carte à clic 2x2
Overview
Découvrez la polyvalence et la fonctionnalité du 2x2 Key Click Board™, une solution de pointe pour vos besoins en matière de clavier. Conçue pour offrir une intégration transparente et des performances fiables, cette carte innovante répond à une large gamme d'applications grâce à ses fonctionnalités avancées et à sa conception intuitive.
En choisissant le clavier 2x2 Key Click Board™, vous accédez à un monde de possibilités. Que vous soyez amateur ou professionnel, cette solution de clavier polyvalente est conçue pour répondre à vos besoins spécifiques avec précision et efficacité.
- Découvrez une fonctionnalité multi-touches transparente avec le 2x2 Key Click Board™, conçu pour prendre en charge plusieurs pressions de touches sans effort.
- Bénéficiez d'une durabilité et d'une réactivité améliorées grâce au circuit anti-rebond doté de composants de qualité supérieure provenant de fabricants de premier plan tels que NXP et Texas Instruments.
Conçu pour s'adapter à diverses configurations d'alimentation, le 2x2 Key Click Board™ est compatible avec les sources d'alimentation 3,3 V et 5 V, garantissant flexibilité et commodité dans vos projets.
Doté d'une capacité de lecture de bouton indépendante, ce Click Board™ offre un contrôle et une précision améliorés, vous permettant de personnaliser vos entrées clés en fonction de vos besoins spécifiques.
Découvrez l'intégration transparente et les performances inégalées du 2x2 Key Click Board™, une solution fiable et polyvalente pour tous vos besoins en matière de clavier. Élevez vos projets vers de nouveaux sommets avec cette solution de clavier de pointe qui allie innovation, fiabilité et efficacité.
Adoptez l'avenir de la technologie des claviers avec le 2x2 Key Click Board™ - votre passerelle vers des solutions de saisie de touches transparentes pour une large gamme d'applications. Libérez le potentiel de vos projets avec ce Click Board™ avancé qui promet précision, fiabilité et flexibilité à chaque frappe.
DEBOUNCE CIRCUIT
In electronics, two metal components tend to bounce or create multiple signals when they are in contact with each other — like when you push a button — before they get to a stable state. You want a single contact to be recorded, but the microcontroller records this as if you pressed the button many times.
So debouncing is, as the name states, the removal of bounces or spikes of low and high voltages. Graphically speaking, you want a clean line, not spikes. A debounce circuit makes sure that there are no voltage changes on the output. Thanks to it, one button press is recorded as such.
INTERRUPT SERVICE ROUTINE
All four Schmitt-trigger outputs are connected to input pins of the logic OR gate 74HC32, whose output is directly connected to the INT pin on mikroBUS. This pin is used to signalize an interrupt to the MCU any time a button is pressed.
In this way, the MCU software can be implemented as a simple polling routine, without any delays programmed in the code (like it would be necessary if there wasn't a hardware debouncing circuit present).
Thanks to the INT pin you can easily program a common interrupt service routine, in order to detect when a button is pressed (the state of the button changes from low to high logic level).
SPECIFICATIONS
Type | Pushbutton/Switches |
Applications | Human machine interface applications |
On-board modules | 74HC32 quad 2-input OR gate from NXP and the SN74HC14 Hex Schmitt-Trigger Inverter from Texas Instruments |
Key Features | 74HC32 quad 2-input OR gate, SN74HC14 Hex Schmitt-Trigger Inverte |
Interface | GPIO |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
Input Voltage | 3.3V or 5V |
ADDITIONAL INFORMATION
- J2 is the interrupt enable pin (by default it is in the enable status).
- J1 is the power selection pin.
PINOUT DIAGRAM
This table shows how the pinout on 2x2 Key click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
When button T1 is pressed the pin is active | T1-OUT | 1 | AN | PWM | 16 | T4-OUT | When button T4 is pressed the pin is active |
When button T2 is pressed the pin is active | T2-OUT | 2 | RST | INT | 15 | TINT | Interrupt pin that notifies the MCU that a button is pressed |
When button T3 is pressed the pin is active | T3-OUT | 3 | CS | TX | 14 | NC | |
NC | 4 | SCK | RX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | NC | ||
NC | 6 | MOSI | SDA | 11 | NC | ||
Power supply | +3.3V | 7 | 3.3V | 5V | 10 | +5V | Power supply |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
Software Support
The demo initialises the TFT display and sets pins to operate in input direction. The main function of the demo uses the polling method to check if inputs are on an active level. The TFT display shows the button state according to detect level.
1 void main() 2 { 3 system_init(); 4 5 Draw_Taster(X1, Y1, RELEASED, "T1"); 6 Draw_Taster(X2, Y1, RELEASED, "T2"); 7 Draw_Taster(X1, Y2, RELEASED, "T3"); 8 Draw_Taster(X2, Y2, RELEASED, "T4"); 9 10 while(1) 11 { 12 if(Taster_Pressed(TAST1, &t1_state)) 13 Draw_Taster(X1, Y1, PRESSED, "T1"); 14 15 if(Taster_Released(TAST1, &t1_state)) 16 Draw_Taster(X1, Y1, RELEASED, "T1"); 17 18 if(Taster_Pressed(TAST2, &t2_state)) 19 Draw_Taster(X2, Y1, PRESSED, "T2"); 20 21 if(Taster_Released(TAST2, &t2_state)) 22 Draw_Taster(X2, Y1, RELEASED, "T2"); 23 24 if(Taster_Pressed(TAST3, &t3_state)) 25 Draw_Taster(X1, Y2, PRESSED, "T3"); 26 27 if(Taster_Released(TAST3, &t3_state)) 28 Draw_Taster(X1, Y2, RELEASED, "T3"); 29 30 if(Taster_Pressed(TAST4, &t4_state)) 31 Draw_Taster(X2, Y2, PRESSED, "T4"); 32 33 if(Taster_Released(TAST4, &t4_state)) 34 Draw_Taster(X2, Y2, RELEASED, "T4"); 35 36 t1_state = TAST1; 37 t2_state = TAST2; 38 t3_state = TAST3; 39 t4_state = TAST4; 40 41 Delay_ms(POLLING_PERIOD); 42 } 43 }
Software Support
The demo initialises the TFT display and sets pins to operate in input direction. The main function of the demo uses the polling method to check if inputs are on an active level. The TFT display shows the button state according to detect level.
1 void main() 2 { 3 system_init(); 4 5 Draw_Taster(X1, Y1, RELEASED, "T1"); 6 Draw_Taster(X2, Y1, RELEASED, "T2"); 7 Draw_Taster(X1, Y2, RELEASED, "T3"); 8 Draw_Taster(X2, Y2, RELEASED, "T4"); 9 10 while(1) 11 { 12 if(Taster_Pressed(TAST1, &t1_state)) 13 Draw_Taster(X1, Y1, PRESSED, "T1"); 14 15 if(Taster_Released(TAST1, &t1_state)) 16 Draw_Taster(X1, Y1, RELEASED, "T1"); 17 18 if(Taster_Pressed(TAST2, &t2_state)) 19 Draw_Taster(X2, Y1, PRESSED, "T2"); 20 21 if(Taster_Released(TAST2, &t2_state)) 22 Draw_Taster(X2, Y1, RELEASED, "T2"); 23 24 if(Taster_Pressed(TAST3, &t3_state)) 25 Draw_Taster(X1, Y2, PRESSED, "T3"); 26 27 if(Taster_Released(TAST3, &t3_state)) 28 Draw_Taster(X1, Y2, RELEASED, "T3"); 29 30 if(Taster_Pressed(TAST4, &t4_state)) 31 Draw_Taster(X2, Y2, PRESSED, "T4"); 32 33 if(Taster_Released(TAST4, &t4_state)) 34 Draw_Taster(X2, Y2, RELEASED, "T4"); 35 36 t1_state = TAST1; 37 t2_state = TAST2; 38 t3_state = TAST3; 39 t4_state = TAST4; 40 41 Delay_ms(POLLING_PERIOD); 42 } 43 }
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.