Códigos e Firmwares das placas AL

Vá sempre além do que é esperado

Blink Pin 8
// the setup function runs once when you press reset or power the board
void setup() {
    // initialize digital pin 8 as an output.
    pinMode(8, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
    digitalWrite(8, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(1000);             // wait for a second
    digitalWrite(8, LOW);    // turn the LED off by making the voltage LOW
    delay(1000);             // wait for a second
}
                                
Relé Pin 7
// the setup function runs once when you press reset or power the board
void setup() {
    // initialize digital pin 7 as an output.
    pinMode(7, OUTPUT);      // Relay is instaled on pin 7 
}

// the loop function runs over and over again forever
void loop() {
    digitalWrite(7, HIGH);   // turn the Relay on (HIGH is the voltage level)
    delay(1000);             // wait for a second
    digitalWrite(7, LOW);    // turn the Relay off by making the voltage LOW
    delay(1000);             // wait for a second
}
                                
Servo SG09
#include //INCLUSÃO DA BIBLIOTECA NECESSÁRIA
const int pinoServo = 10; //PINO DIGITAL UTILIZADO PELO SERVO  
    
Servo s; //OBJETO DO TIPO SERVO
int pos; //POSIÇÃO DO SERVO
    
void setup (){
    s.attach(pinoServo); //ASSOCIAÇÃO DO PINO DIGITAL AO OBJETO DO TIPO SERVO
    s.write(0); //INICIA O MOTOR NA POSIÇÃO 0º
}
void loop(){
    for(pos = 0; pos < 120; pos++){ //PARA "pos" IGUAL A 0, ENQUANTO "pos" MENOR QUE 120, INCREMENTA "pos"
    s.write(pos); //ESCREVE O VALOR DA POSIÇÃO QUE O SERVO DEVE GIRAR
    delay(15); //INTERVALO DE 15 MILISSEGUNDOS
    }
    delay(1000); //INTERVALO DE 1 SEGUNDO
    for(pos = 120; pos >= 0; pos--){ //PARA "pos" IGUAL A 120, ENQUANTO "pos" MAIOR OU IGUAL QUE 0, DECREMENTA "pos"
    s.write(pos); //ESCREVE O VALOR DA POSIÇÃO QUE O SERVO DEVE GIRAR
    delay(15); //INTERVALO DE 15 MILISSEGUNDOS
    }
}
                                
Display 16x2 i2c
#include <Wire.h> // Biblioteca utilizada para fazer a comunicação com o I2C
#include <LiquidCrystal_I2C.h> // Biblioteca utilizada para fazer a comunicação com o display 20x4 

#define col 16     // Serve para definir o numero de colunas do display utilizado
#define lin  2     // Serve para definir o numero de linhas do display utilizado
#define ende  0x27 // Serve para definir o endereço do display.

LiquidCrystal_I2C lcd(ende,col,lin); // Chamada da funcação LiquidCrystal para ser usada com o I2C

void setup() //Incia o display
{  
    lcd.init();      // Serve para iniciar a comunicação com o display já conectado
    lcd.backlight(); // Serve para ligar a luz do display
    lcd.clear();     // Serve para limpar a tela do display
}
void loop() 
{
    lcd.setCursor(2,0);         // Coloca o cursor do display na coluna 2 e linha 0
    lcd.print("Quer aprender"); // Comando de saída com a mensagem que deve aparecer na coluna 2 e linha 0.
    lcd.setCursor(4,1);         //Coloca o cursor do display na coluna 4 e linha 1
    lcd.print("Arduino?");      // Comando de saida com a mensagem que deve aparecer na coluna 4 e linha 1
    delay(5000);                // delay de 5 segundos com todas as mensagens na tela
    lcd.clear();                // Limpa o display até o loop ser reiniciado
    lcd.setCursor(4,0);         // Coloca o cursor do display na coluna 4 e linha 0
    lcd.print("PCB AL-1 ");     // Comando de saída com a mensagem que deve aparecer na coluna 4 e linha 0.
    lcd.setCursor(2,1);         //Coloca o cursor do display na coluna 2 e linha 1
    lcd.print("Plug & Play ");  // Comando de saida com a mensagem que deve aparecer na coluna 2 e linha 1
    delay(5000);                // delay de 5 segundos com todas as mensagens na tela
    lcd.clear();                // Limpa o display até o loop ser reiniciado
}
                                
HC-SR04
// defines pins numbers
const int trigPin = 5;
const int echoPin = 4;
// defines variables
long duration;
float distance;
void setup() {
    pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
    pinMode(echoPin, INPUT);  // Sets the echoPin as an Input
    Serial.begin(9600);       // Starts the serial communication
}
void loop() {
    // Clears the trigPin
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    // Sets the trigPin on HIGH state for 10 micro seconds
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    // Reads the echoPin, returns the sound wave travel time in microseconds
    duration = pulseIn(echoPin, HIGH);
    // Calculating the distance
    distance = duration * 0.034 / 2;
    // Prints the distance on the Serial Monitor
    Serial.print("Distance: ");
    Serial.print(distance, 2);
    Serial.println(" cm");
    delay(1000);
}
                                
DHT11 com Display 16x2 i2c
#include <Wire.h> // Biblioteca utilizada para fazer a comunicação com o I2C
#include <LiquidCrystal_I2C.h> // Biblioteca utilizada para fazer a comunicação com o display 20x4 

#include "DHT.h"

#define col 16 // Serve para definir o numero de colunas do display utilizado
#define lin  2 // Serve para definir o numero de linhas do display utilizado
#define ende  0x27 // Serve para definir o endereço do display.

#define DHTPIN 9 // pino que estamos conectado
#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(ende,col,lin); // Chamada da funcação LiquidCrystal para ser usada com o I2C

byte umidade;
float temperatura;

void setup() //Incia o display
{  
    dht.begin();
    
    lcd.init(); // Serve para iniciar a comunicação com o display já conectado
    lcd.backlight(); // Serve para ligar a luz do display
    lcd.clear(); // Serve para limpar a tela do display
}
void loop() 
{
    umidade = dht.readHumidity();
    temperatura = dht.readTemperature();
    
    lcd.setCursor(0,0); // Coloca o cursor do display na coluna 0 e linha 0
    lcd.print("Temp: "); // Comando de saída com a mensagem que deve aparecer na coluna 0 e linha 0.
    lcd.setCursor(6,0); //Coloca o cursor do display na coluna 6 e linha 0
    lcd.print(temperatura,1);  // Comando de saida com a mensagem que deve aparecer na coluna 6 e linha 0
    lcd.setCursor(11,0); //Coloca o cursor do display na coluna 11 e linha 0
    lcd.print("C");  // Comando de saida com a mensagem que deve aparecer na coluna 11 e linha 0
    lcd.setCursor(0,1); // Coloca o cursor do display na coluna 0 e linha 1
    lcd.print("Umid: "); // Comando de saída com a mensagem que deve aparecer na coluna 0 e linha 1.
    lcd.setCursor(6,1); //Coloca o cursor do display na coluna 6 e linha 1
    lcd.print(umidade);  // Comando de saida com a mensagem que deve aparecer na coluna 6 e linha 1
    lcd.setCursor(9,1); //Coloca o cursor do display na coluna 9 e linha 1
    lcd.print("%");  // Comando de saida com a mensagem que deve aparecer na coluna 9 e linha 1
    delay(5000);  // delay de 5 segundos com todas as mensagens na tela
    lcd.clear(); // Limpa o display até o loop ser reiniciado
}
                                
Control motor de passo DRV8825
// Define pin connections & motor's steps per revolution
const int dirPin = A0;
const int stepPin = A1;
const int slpPin = A2;
const int rstPin = A3;
const int stepsPerRevolution = 200;

void setup()
{
    // Declare pins as Outputs
    pinMode(stepPin, OUTPUT);
    pinMode(dirPin, OUTPUT);
    pinMode(slpPin, OUTPUT);
    pinMode(rstPin, OUTPUT);

    digitalWrite(slpPin, HIGH);
    digitalWrite(rstPin, HIGH);
}
void loop()
{
    // Set motor direction clockwise
    digitalWrite(dirPin, HIGH);

    // Spin motor slowly
    for(int x = 0; x < stepsPerRevolution; x++)
    {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(2000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(2000);
    }
    delay(1000); // Wait a second
    
    // Set motor direction counterclockwise
    digitalWrite(dirPin, LOW);

    // Spin motor quickly
    for(int x = 0; x < stepsPerRevolution; x++)
    {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(1000);
    }
    delay(1000); // Wait a second
}
                                
RS-485
#define TxRxPin 6 //HIGH:TX e LOW:RX Para o RS-485
#define LedPin 8

void setup() {
    Serial.begin(9600);
    pinMode(TxRxPin, OUTPUT);
    pinMode(LedPin, OUTPUT);
}

void loop() {
    digitalWrite(TxRxPin, HIGH);       // RS485 como transmissor
    Serial.println("--> Que horas são?");
    delay(20);                         // Aguarda um pouco emcuanto envia a mensagem
    
    digitalWrite(TxRxPin, LOW);        // RS485 como receptor
    digitalWrite(LedPin, HIGH);        // Led indica que estara aguardando uma resposta
    
    while(Serial.available() == 0){}   // Espera por algum dado disponivel
    
    digitalWrite(LedPin, LOW);         // Led desliga indicando que chegou uma mensagem
    String text = Serial.readString(); // Lê até o timeout
    text.trim();                       // Remove \r \n whitespace do final do string  
    Serial.print("<-- ");
    Serial.println(text);
    delay(5000); 
}