#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// Definir os pinos usados para o sensor ultrassônico
#define TRIGGER_PIN 27
#define ECHO_PIN 28
// Definir os pinos usados para o cartão microSD
#define SCK_PIN 2
#define MOSI_PIN 3
#define MISO_PIN 4
#define CS_PIN 5
// Função para medir a distância com o sensor ultrassônico
double get_distance() {
// Enviar um pulso de 10us no pino trigger
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(5);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
// Adicionar um pequeno atraso
delayMicroseconds(10);
// Medir o tempo que o pino echo fica alto
long signaloff = micros();
while (digitalRead(ECHO_PIN) == 0) {
signaloff = micros();
}
long signalon = micros();
while (digitalRead(ECHO_PIN) == 1) {
signalon = micros();
}
// Calcular a distância em centímetros usando a fórmula d = (t * v) / 2
long timepassed = signalon - signaloff;
double distance = (timepassed * 0.0343) / 2;
return distance;
}
int main() {
// Inicializar os pinos do sensor ultrassônico
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Loop principal do programa
while (1) {
// Ler a distância do sensor ultrassônico e mostrar no terminal serial
double distance = get_distance();
printf("A distância medida é %.2f cm.\n", distance);
// Ler o toque na tela e mostrar a letra correspondente no terminal serial
// Nota: Esta parte do código foi omitida porque a implementação exata dependerá da biblioteca específica de tela touch que você está usando.
// Você precisará consultar a documentação da sua biblioteca para saber como ler um toque na tela e obter a letra correspondente do teclado virtual.
delay(1000); // Aguardar um segundo antes da próxima leitura
}
return 0;
}