Olá galera, mais uma experiência compartilhada para vocês, estava tendo problemas com meu modulo Bluetooth, pesquisando e descobrindo achei a solução que me serviu, sigam as informações:
Esquema elétrico:
Usei essa ligação com meu Arduino Nano, os resistores R1 e R2 ficam a critério de vocês, LEMBRANDO que não pode passar de 3.3v no RX do módulo Bluetooth, quando alimentam o pino EN com 3.3v o modulo fica em modo de programação, quando terminarem de configurar, desconectem esse pino.
Programa:
Compilem esse código no Arduino para fazer a configuração, segue com o vídeo:
Aviso importante:
Não esquecer de trocar o tipo de linha para "Ambos, NL e CR". Se não, não funciona!
Comandos:
AT+ORGL (Reseta o módulo para a configuração padrão)
AT+RMAAD (remove dispositivos anteriormente pareados)
AT+ROLE=1 (define o modo de operação do módulo como MASTER)
AT+RESET (Reset do módulo após a definição do modo de operação)
AT+CMODE=1 (Permite a conexão a qualquer endereço)
AT+INQM=0,5,10 (Modo de varredura: padrão, procura por 5 dispositivos ou pára a varredura após 10 s)
AT+PSWD=1234 (define a senha do módulo mestre, que deve ser a mesma do módulo slave/escravo)
AT+UART=9600,0,0 (altera a velocidade do módulo, coloque a velocidade do módulo que quer conectar)
AT+INIT (inicializa o perfil para transmissão/recepção)
AT+INQ (inicializa a varredura por dispositivos bluetooth)
Depois de achar o endereço do modulo escravo, substitua os ( : ) por ( , ).
Eae pessoal que acompanha o blog, tenho uma ótima noticia, agora além de compartilhar meu conhecimento também estou vendendo peças de eletrônica no Mercado Livre, quem quiser comprar comigo fique a vontade.
O professor pediu para os alunos fazer um projeto que controlasse temperatura usando o dimmer que montamos semestre passado, o projeto esta bem porém teve algumas mudanças, não vou detalhar exatamente tudo nesse post porque o post do dimmer esta com grande parte das coisas que vou postar.
Placa feita no Proteus 8:
Pra quem já mexeu no Proteus versão 8 sabe que ele "sincroniza" o esquema com a placa.
Problemas enfrentados:
Bem eu tinha seguido exatamente o mesmo esquema da placa do semestre passado, só que dessa vez em vez de fazer duas placas fiz tudo em uma.
1º
Tentei usar o modulo Wifi ESP8266 junto com o dimmer porém se você usar delay junto com o dimmer ele entra em conflito com o contador de zero da rede e precisa de uma fonte externa de 3.3v pois a do Arduino Nano não da conta.
2º
No inicio estava tudo certo porém não funcionava a parte do moc em diante, ai fiz os seguintes procedimentos:
Teste de Triac:
Fonte: Newton C. Braga
Meu triac que é o BTA12-600 passou no teste.
Teste de Moc:
Fonte: Eletrônica São Bento
Meu moc que é o MOC3021 passou no teste.
Então a única coisa que poderia ser era o Arduino, coloquei um resistor menor e funcionou, suspeito que seja a versão do software do Arduino.
Placa pronta para soldar e em seguida completa:
Aprendi a fazer essas placas com o Ricardo do Engenharia Caseira, recomendo e quem quiser que eu grave eu fazendo uma placa só mandar mensagem.
Ainda não vou postar a programação porque ela ainda não esta perfeita, ela ficando completa ela será postada aqui.
Recomendo que não coloquem o módulo Wifi nesse projeto pois no meu caso não deu certo, logo postarei um vídeo mostrando o projeto em funcionamento. Muito Obrigado!
Antes de começar a explicar devemos dizer o que é um Dimmer:
Dimmer é um dispositivo utilizado para variar a intensidade de uma corrente elétrica média em uma carga. Eles consistem de gradadores que, através da diminuição ou aumento da tensão valor eficaz e portanto um aumento da potência média de uma carga,
controlam a intensidade produzida pela mesma. Exemplo, um dimmer tem como
objetivo fazer com que aumente ou diminua a intensidade luminosa
através de um potenciômetro, que auxilia nessa operação.
O projeto tem como função controlar uma carga, seja qual for que trabalhe com corrente alternada, através do ângulo-porcentagem desejada é possível controlar a intensidade de n cargas, então vejamos por etapas:
Obs.: O esquema esta montado para futura confecção do circuito.
O Dimmer:
Dimmer Pci:
Shield Arduino:
Shield Arduino Pci:
O que é o 4N25:
O 4N25 é é um componente eletrônico que possui a capacidade de realizar o isolamento de partes específicas de um circuito Através de um isolamento que constitui-se por um diodo emissor de luz infravermelho. Resumidamente, oOptoacoplador 4N25
é capaz de isolar dois circuitos eletrônicos com total segurança,
mantendo um controle de comunicação entre ambas as partes. Total
segurança, é garantida graças ao fato de o mesmo não possuir um contato
elétrico e nem mesmo mecânico, mas sim um contato luminoso.
Na parte do 4N25 temos o detector de zero, que é basicamente um circuito
que produz um pulso positivo de curta duração quando o sinal senoidal de
entrada, ou outro sinal passa pelo ponto de zero volt na sua descida, então toda vez que a tensão passar pelo 0 volt ele vai detectar e informar isso ao Arduino.
O que é o MOC3021:
Ele é igual ao 4N25, ou seja um octoacoplador, com a diferença que ele possui a capacidade de controlar um fototriac com tensões de rede igual ou inferior a 240V.
Na parte do MOC3021 temos o Triac que terá a função de controlar a carga, o Arduino informara ao moc o ângulo que o programador deseja adquirir na carga.
Esse circuito será ligado a carga, a tomada e alimentara o Arduino com uma fonte de celular e pra garantir que não ira queimar ainda tem um regulador de tensão LM7805.
Esse esquema(Shield Arduino) é um Shield que montamos, o conector ARDUINO se encaixará no ARDUINO do Dimmer, colocamos varios outros conectores para ter flexibilidade na hora de trocar algum pino no Software, o POT é a alimentação do potênciometro, SERIAL será caso for necessário o auxilio de um modulo Bluetooth, AN estradas analógicas, J3 será o botão que ira decidir se o processo esta no modo automático ou manual.
Simulação:
O Software(em teste):
#define PINO_ZC 2
#define PINO_DIM 4
#define but 6 // Botão pino 6 do Arduino
#define pot A3 // Potenciometro pino A3 do Arduino
int valor = 0; // Variável para o tempo de disparo
int pothg = 0;
int pcto = 0;
volatile long luminosidade = 0; // 0 a 100
void zeroCross() {
if (luminosidade>100) luminosidade=100;
if (luminosidade<0) luminosidade=0;
long t1 = 8200L * (100L - luminosidade) / 100L;
delayMicroseconds(t1);
digitalWrite(PINO_DIM, HIGH);
delayMicroseconds(6); // t2
digitalWrite(PINO_DIM, LOW);
}
void setup() {
pinMode(PINO_DIM, OUTPUT);
attachInterrupt(0, zeroCross, RISING);
Serial.begin(9600);
}
void loop() {
if(digitalRead(but) == 1){ // --- Modo Automatico
char buffer[] = {' ',' ', ' '}; // Recebe 3 bytes
if (Serial.available()) {
// Espera pelo caracteres
Serial.readBytesUntil('n',buffer,3); // Na teoria era pra ler os caracteres até a letra N, ex 100n, 20n
int incomingValue = atoi(buffer);
Serial.println(incomingValue);
if(incomingValue > 100 || incomingValue < 0){
Serial.println("Somente de 0 a 100");
incomingValue = 0;
}
pcto = map(incomingValue, 0, 100, 10, 88);
luminosidade = pcto;
Serial.print("Porcentagem: ");
Serial.println(incomingValue);
Serial.print("Angulo: ");
Serial.println(pcto);
}
}else{
valor = analogRead(A3);
pothg = map(valor, 0, 1023, 10, 88); //Deve ser entre 20 a 94(no meu caso 10 e 88)
Bom dia, Boa tarde, Boa noite, galera, vim com um projeto muito doido da faculdade, um carrinho controlado por arduino que segue linha usando sensor infra-vermelho, observem:
Programação:
int val1 = 0; //variável para armazenar o valor lido
int val2 = 0; //variável para armazenar o valor lido
int val3 = 0; //variável para armazenar o valor lido
int calibrado = 400;
int central = 90;
int parado = 0;
void setup()
{
pinMode(3, OUTPUT); // configura pino como saída M1 --> Frente
pinMode(5, OUTPUT); // configura pino como saída M1
pinMode(9, OUTPUT); // configura pino como saída M2 --> Frente
pinMode(10,OUTPUT); // configura pino como saída M2
}
void loop()
{
val1 = analogRead(0); // le o valor analógico do sensor 1
val2 = analogRead(1); // le o valor analógico do sensor 2
val3 = analogRead(2); // le o valor analógico do sensor 3
if(val1 > calibrado){ // direita maior que esquerda
analogWrite(3, LOW); // desliga o motor da direita
analogWrite(9, central); // manda a velocidade do motor
}
if(val2 > calibrado){
analogWrite(3, central);
analogWrite(9, central);
}
if(val3 > calibrado){ // direita maior que esquerda
analogWrite(3, central); // manda a velocidade do motor
analogWrite(9, LOW); // desliga o motor da esquerda
}
}
Bom dia, Boa tarde, Boa noite, montei um circuito transmissor de fm, o circuito funcionou mas não foi muito longe o alcance, mas devo considerar a bateria e a antena que não foi muito apropriada, e da um trabalho muito chato ajustar o capacitor variável, mas da pra brincar kk ;)
Lista de componentes:
4 Resistors 1 R1 39Ohm 1 R2 4.7k 1 R3 6.8k 1 R4 10k
Bom dia, Boa tarde, Boa noite, vim mostrar a vocês esse circuito para controlar motores DC, fiz a placa e funcionou, ainda irei postar o vídeo, a lista de componentes irei usar a própria opção que tem no Proteus.
Lista de componentes:
2 Resistors
1 R1 10k
1 R2 4k7
2 Capacitors
1 C1 1uF
1 C2 100nF
1 Integrated Circuits
1 U1 555
1 Transistors
1 Q1 IRFZ44N
2 Diodes
2 D1, D2 1N4007
2 Outros
1 MO1 12V
1 RV1 100k(potenciometro)
Obs: O potenciômetro não entrou na lista com os resistores devido eu ter feito um pack dele no Ares.
Esquema de componente:
Esquema para a placa:
Placa pronta:
Placa com os componentes e funcionando:
só faltou parafusar o dissipador de calor no transistor que aciona o motor, e depois é só alegria, até mais galera!