PT
Este projecto consiste num sorteador de moedas por gravidade com deteção automática das moedas e contagem. O microcontrolador usado é um Arduino UNO cujo programa corresponde ao único ficheiro de código presente no repositório. Os restantes ficheiros são peças da caixa de suporte que tem a rampa de deslizamento e os slots das moedas.
Para além do Arduino, é fundamentalmente necessário:
- 8 módulos do sensor de infravermelhos TCRT5000
- 1 módulo LCD1602 com adaptador I2C
- 1 botão e 1 resitência de 10k Ohms (montagem botão básica)
Na secção seguinte, descreve-se como estes componentes interagem com o I/O do Arduino.
Como já mencionado, o ficheiro coinsorter.ino
contém o código arduino que caracteriza todo o funcionamento.
A library usada para comunicar com o módulo I2C do LCD é o Liquid Crystal:
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// A4 - sda, A5 - clk
A configuração usa os tradicionais pins A4 e A5 para o SDA/SCL do protocolo I2C. O LCD precisa também das ligações habituais +5V e GND.
Cada módulo infravermelho do TCRT5000 corresponde a um tamanho de moeda diferente e estão ligados do pin 0 ao pin 7. Definição:
const int IRinput[] = {0, 1, 2, 3, 4, 5, 6, 7};
Setup:
for(i = 0; i < 4; i++) pinMode(IRinput[i], INPUT);
O pushbutton é ligado ao pin A0. Definição:
const int buttonPin = A0;
Setup:
pinMode(buttonPin, INPUT);
Uma versão melhorada deste setup e também da leitura inclui Direct Port Manipulation, e verá a luz do dia no futuro. Essencialmente é manipular directamente os registers I/O do arduino, excusando usar funções elaboradas que comem ciclos de relógio como quem bebe água.
Os restantes ficheiros são para impressão 3d. Uma descrição mais detalhada desta secção será adicionada no futuro, para que seja fácil de imprimir e assemblar as coisas.