Este experimento ilustra o uso da função analogRead() e
analogWrite() para controlar a intensidade de um led com
um potenciômetro.
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Simulação em Autodesk Circuits
int AnInput = 0;
int ledPin = 11; //Este pin tem PWM
int leitura = 0;
int aux = 0;
void setup() {
Serial.begin(9600);
delay(1000);
pinMode(11,OUTPUT);
}
void loop() {
leitura = analogRead(AnInput);
//Mapeia o valor ADC entre 0 e 255
aux = map(leitura, 0, 1023, 0, 255);
analogWrite(ledPin,aux);
}
Monday, February 6, 2017
15. analogRead - Potenciômetro
Este experimento ilustra o uso da função analogRead() para medir a voltagem de um divisor de tensão.
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Implementação em Autodesk Circuits
int btn1 = 2;
int AnInput = 0;
int leitura = 0;
void setup() {
Serial.begin(9600);
delay(1000);
}
void loop() {
lectura = analogRead(AnInput);
if (digitalRead(btn1) == LOW) {
//Imprime o valor digital
Serial.println(leitura);
}
else {
//Imprime o equivalente en voltagem
Serial.println(leitura * 0.0049);
}
delay(1000);
}
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Implementação em Autodesk Circuits
int btn1 = 2;
int AnInput = 0;
int leitura = 0;
void setup() {
Serial.begin(9600);
delay(1000);
}
void loop() {
lectura = analogRead(AnInput);
if (digitalRead(btn1) == LOW) {
//Imprime o valor digital
Serial.println(leitura);
}
else {
//Imprime o equivalente en voltagem
Serial.println(leitura * 0.0049);
}
delay(1000);
}
Sunday, February 5, 2017
14. ISR
Esta experiência mostra o uso do ISR. Consiste em que ao pressionar o botão, sem importar o momento, o led mudará seu estado: se estiver aceso, se apagará, e vice versa.
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Implementação em Autodesk Circuits
int Btn0 = 2; // Pin ligado a int.0
int Btn1 = 3; // Pin ligado a int.1
int pinLed = 11;
void setup() {
pinMode(Btn0, INPUT);
pinMode(Btn1, INPUT);
pinMode(pinLed, OUTPUT);
attachInterrupt(0,apaga_led, RISING);
attachInterrupt(1,acende_led, RISING);
Serial.begin(9600);
delay(2000);
}
void loop() {
delay(2500);
Serial.print("Passaram ");
delay(2500);
Serial.println("5 segundos");
}
/* A função de interrupção muda o presente estado do led */
void apaga_led() {
digitalWrite(pinLed, 0);
}
void acende_led() {
digitalWrite(pinLed, 1);
}
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Implementação em Autodesk Circuits
int Btn0 = 2; // Pin ligado a int.0
int Btn1 = 3; // Pin ligado a int.1
int pinLed = 11;
void setup() {
pinMode(Btn0, INPUT);
pinMode(Btn1, INPUT);
pinMode(pinLed, OUTPUT);
attachInterrupt(0,apaga_led, RISING);
attachInterrupt(1,acende_led, RISING);
Serial.begin(9600);
delay(2000);
}
void loop() {
delay(2500);
Serial.print("Passaram ");
delay(2500);
Serial.println("5 segundos");
}
/* A função de interrupção muda o presente estado do led */
void apaga_led() {
digitalWrite(pinLed, 0);
}
void acende_led() {
digitalWrite(pinLed, 1);
}
13. attachInterrupt
Este código ilustra o uso do comando attachInterrupt.
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Notamos que a simulação não funcionou no Autodesk Circuits. Implemente e teste diretamente este código no seu Arduino Uno.
//Definimos o pino correspondente ao led
int ledPin = 11;
//Definimos o pino correpondente à interrupção 0
int intPin = 2;
void setup()
{
//Configuramos os pinos como saída
pinMode(2,OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(intPin, HIGH);
//Configuramos a interrupcao 0 para ativar-se quando temos
//queda de tensão, executando a funcao acende_led
attachInterrupt(0, acende_led,FALLING);
}
void loop()
{
digitalWrite(ledPin, LOW);
delay(300);
digitalWrite(intPin, LOW);
/* Neste momento se ativa o alerta e se
executa a funcao acende_led */
delay(500);
}
void acende_led(){
digitalWrite(ledPin, HIGH);
digitalWrite(intPin, HIGH);
}
Lição do curso:
Coursera: Electrones en Acción: Electrónica y Arduinos para tus propios Inventos
Pontificia Universidad Católica de Chile
Notamos que a simulação não funcionou no Autodesk Circuits. Implemente e teste diretamente este código no seu Arduino Uno.
//Definimos o pino correspondente ao led
int ledPin = 11;
//Definimos o pino correpondente à interrupção 0
int intPin = 2;
void setup()
{
//Configuramos os pinos como saída
pinMode(2,OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(intPin, HIGH);
//Configuramos a interrupcao 0 para ativar-se quando temos
//queda de tensão, executando a funcao acende_led
attachInterrupt(0, acende_led,FALLING);
}
void loop()
{
digitalWrite(ledPin, LOW);
delay(300);
digitalWrite(intPin, LOW);
/* Neste momento se ativa o alerta e se
executa a funcao acende_led */
delay(500);
}
void acende_led(){
digitalWrite(ledPin, HIGH);
digitalWrite(intPin, HIGH);
}
Subscribe to:
Posts (Atom)