O Arduino possui algumas portas (pinos) que permitem o controle PWM.
Quando controlamos os pinos como saída, definimos como LOW ou HIGH (0v ou 5v), porém nos pinos analógicos podemos controlar com mais precisão, alterando de 0v até 5v.
A sintaxe é:
analogWrite(pino, valor);
O valor que devemos usar está entre 0 e 255.
Dessa forma é possível controlar a intensidade do led.
Para ver mais projetos e melhorar o entendimento, use a busca com o marcador PWM.
Percebemos também o quanto as estruturas de repetições são muito utilizadas, reduzindo muito o tamanho do código fonte.
Referências:
https://pt.wikipedia.org/wiki/Modula%C3%A7%C3%A3o_por_largura_de_pulso
https://www.arduino.cc/en/Tutorial/PWM
https://www.arduino.cc/reference/pt/language/functions/analog-io/analogwrite/
Segue o esquema elétrico e o código fonte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | /*--------------------------------------------------------- Programa : SEQUENCIAL DE LEDS COM FADE Autor : Fellipe Couto [ http://www.efeitonerd.com.br ] Data : 25/04/2020 ---------------------------------------------------------*/ const int led[6] = {3, 5, 6, 9, 10, 11}; void setup() { //Configura os pinos de conexão dos leds for (int i = 0; i < 6; i++) { pinMode(led[i], OUTPUT); } } void loop() { //Led por led for (int i = 0; i < 6; i++) { //Loop para fade do led - Acende for (int y = 10; y <= 255; y += 5) { analogWrite(led[i], y); delay(5); } } //Led por led for (int i = 0; i < 6; i++) { //Loop para fade do led - Apaga for (int y = 245; y >= 0; y -= 5) { analogWrite(led[i], y); delay(5); } } //Led por led - Invertido for (int i = 5; i >= 0; i--) { //Loop para fade do led - Acende for (int y = 10; y <= 255; y += 5) { analogWrite(led[i], y); delay(15); } } //Loop para fade do led - Apaga for (int y = 245; y > 0; y -= 5) { //Led por led for (int i = 0; i < 6; i++) { analogWrite(led[i], y); } delay(40); } delay(500); //Loop para fade do led - Acende for (int y = 1; y <= 255; y += 2) { //Led por led for (int i = 0; i < 6; i++) { analogWrite(led[i], y); } delay(30); } //Led por led - De 2 em 2 for (int i = 0; i < 3; i++) { //Loop para fade do led - Apaga for (int y = 245; y >= 0; y -= 5) { analogWrite(led[i], y); analogWrite(led[5 - i], y); delay(40); } } delay(1000); } |
Gosto muito, de projetos com arduíno e esp32.
ResponderExcluirValeu!
Valeu! Obrigado pela visita ao blog!
Excluirbom dia Felipe
ResponderExcluirpode enviar esse circuito completo, meu email avelinodiasneto@gmail.com
Obrigado
Oi Avelino! Bom dia!
ExcluirDesculpe, não entendi o seu comentário. O projeto completo está na postagem. O esquema de montagem e o código fonte. Possui alguma dúvida?