Sei sulla pagina 1di 45

Introduo ao Arduino

ESCOLA DE ARTES VISUAIS DO PARQUE LAGE

Ncleo de Arte e Tecnologia


julio lucio martin

Aula _05

Aula de repaso

mensagens
void nomeDaMessagem( parmetros...)
poderia retornar um valor, no caso de void e que no retorna nada. O nome que vai poderia ser ser usado para la int chamar boolean

Nenhum o vrios parmetros que poderamos passar com informaes do que a gente quer fazer com a mensagem

mensagens
void setup(){} void loop(){} void pinMode( pino,tipo ); void delay( miliseconds ); void Serial.begin( 9600 ); void Serial.print( variavel ) void Serial.println( texto )

void setup(){}
Mensagem que devemos escrever e implementar (preencher) em todos nossos programas de Arduino. Nela designamos valores as variveis. Somente vai ser chamada uma vez quando o programa de arduino e carregado o ligamos a placa na corrente.

void loop(){}
Mensagem que devemos escrever e implementar (preencher) em todos nossos programas de Arduino. Nela escrevemos o cdigo que vai ser executado na placa. Vai ser chamada innitas vezes enquanto a placa estiver ligada.

void pinMode( n,tipo );


Mensagem que usamos para fala ao Arduino que porta vamos a usar, e de que jeito.

n : numero da porta que usaremos. tipo : si usaremos como entrada o sada INPUT OUTPU

void delay(time)
Mensagem que usamos para fala ao Arduino que porta vamos a usar, e de que jeito.

t : tempo em milsimas de segundo

void Serial.begin(vel);
Mensagem para iniciar a comunicao serial com computador via USB

n : velocidade de comunicao
9600
e o valor tpico

void Serial.println(valor)
imprime o valor no terminal de Arduino e faz salto de linha ao nal

Serial.println(a); Serial.println(33 e o numero que eu gosto);

void Serial.print(valor)
imprime o valor no terminal de Arduino e NAO faz salto de linha ao nal
Serial.print(a);

mensagens
void digitalWrite( pino , valor ); boolean digitalRead( pino ); void analogWrite( pino , valor ); int analogRead( pino );

void digitalWrite(n,tipo)
Escreve digital na porta indicada. ( manda uma corrente de 0V o 5V)

n : numero da porta que usaremos. tipo : Si colocamos 5 Voltios o 0 V LOW para 0V V=Voltios HIGH para 5V

boolean digitalRead(n)
Lee da porta digital um valor LOW o HIGH ( lemos correntes de 0V o 5V)

n : numero da porta que usaremos. boolean : a corrente que esteja


entrando pela porta

LOW , false HIGH , true

, 0 , 1

void analogWrite(n,valor)
Escreve PWM na porta indicada. ( manda uma onda de pulsos que simulan correntes entre 0 e 5v)

n : numero da porta que usaremos. valor : valor que colocaremos entre 0 e


5 volts.

Se escrevem valores entre 0

e 255

int analogRead(n)
Lee da porta digital um valor entero ( lemos corentes entre 0V e 5V)

n : numero da porta que usaremos. int : a corrente que esteja entrando

pela porta em valores entre 0 e 1024

mensagens
void millis(); void map(); void tone( pino,tipo );

float millis();

oat: tempo que paso desde que a placa foi ligada o reseteada, o desde que o programa foi carregado nela.

mensagem
long map(valor,fromLow, fromHigh, toLow, toHigh)

valor: o fromLow

que queremos mapear : valor minimo posivel do valor valor maximo posivel do valor

fromHigh: toLow

: valor minimo posivel de saida valor maximo posivel de saida

toHigh:

void tone( pino,freq ); void tone( pino,freq,durao );

pino: pino do arduino onde esta ligado o


altofalante o piezoeletrico.

frequencia: frequencia do tono a tocar. durao: tempo que durara o tono. Si nao
colocar ele vai tocar innitamente.

1:minipiano com luzes e control de frequencia com potenciometro

materiais
! ! ! ! ! ! ! ! ! !
Arduino potenciometro de 10 Kohm piezoeletrico 4 resistores 220 Ohm 3 resistores 100 Ohm 1 led vermelho 1 led verde 1 led amarelo 3 botoes protoboard

1.1: quatro led piscan


queremos que quatro leds ( un vermelho , un verde , um amarelo e um branco ) pisquem ao mesmo tempo cada segundo ligan e cada segundo desligan.

esquematico

montagem

codigo
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13; , , , , OUTPUT OUTPUT OUTPUT OUTPUT ); ); ); ); void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04 } void loop(){ digitalWrite( digitalWrite( digitalWrite( digitalWrite( delay( 500 ); digitalWrite( digitalWrite( digitalWrite( digitalWrite( delay( 500 ); }

pinoLed01 pinoLed02 pinoLed03 pinoLed04 pinoLed01 pinoLed02 pinoLed03 pinoLed04

, , , ,

HIGH HIGH HIGH HIGH

); ); ); );

, LOW ); , LOW ); , LOW ); , );

1.2: tres led controlados por tres botoes e um pisca


cada um dos botoes controla o liga e desliga dos ledes vermelho, amarelo e verde,. Quando apetamos o botao ele esta ligado e qusndo soltamos desligado. O Led blanco pisaca cada segundo

esquematico

montagem

codigo 1
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13; int pinoBotao01 = 4; int pinoBotao02 = 3; int pinoBotao03 = 2; float ultimaoTempoDeMudancaDoLedBlanco = 0; boolean estadoDoLedBlanco = LOW; void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04 , , , , OUTPUT OUTPUT OUTPUT OUTPUT ); ); ); );

pinMode( pinoBotao01 , INPUT ); pinMode( pinoBotao02 , INPUT ); pinMode( pinoBotao03 , INPUT ); }

codigo 2
void loop(){ float tempoAtual = millis(); boolean estadoDoBotao01 = digitalRead( pinoBotao01 ); boolean estadoDoBotao02 = digitalRead( pinoBotao02 ); boolean estadoDoBotao03 = digitalRead( pinoBotao03 ); if( estadoDoBotao01 ){ digitalWrite( pinoLed01 , HIGH ); } else{ digitalWrite( pinoLed01 , LOW ); } if( estadoDoBotao02 ){ digitalWrite( pinoLed02 , HIGH ); } else{ digitalWrite( pinoLed02 , LOW ); } if( estadoDoBotao03 ){ digitalWrite( pinoLed03 , HIGH ); } else{ digitalWrite( pinoLed03 , LOW ); } if( tempoAtual - ultimaoTempoDeMudancaDoLedBlanco >= 1000 ){ estadoDoLedBlanco = !estadoDoLedBlanco; digitalWrite( pinoLed04 , estadoDoLedBlanco ); ultimaoTempoDeMudancaDoLedBlanco = tempoAtual; }

1.3: tres led controlados por tres botoes e um controlado por potenciometro

esquematico

montagem

codigo 1
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13;

int pinoBotao01 = 4; int pinoBotao02 = 3; int pinoBotao03 = 2; void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04 , , , , OUTPUT OUTPUT OUTPUT OUTPUT ); ); ); );

pinMode( pinoBotao01 , INPUT ); pinMode( pinoBotao02 , INPUT ); pinMode( pinoBotao03 , INPUT ); }

codigo 2
void loop(){ boolean estadoDoBotao01 = digitalRead( pinoBotao01 ); boolean estadoDoBotao02 = digitalRead( pinoBotao02 ); boolean estadoDoBotao03 = digitalRead( pinoBotao03 ); int valorDoPotenciometro = analogRead( A0 ); if( estadoDoBotao01 ){ digitalWrite( pinoLed01 , HIGH ); } else{ digitalWrite( pinoLed01 , LOW ); } if( estadoDoBotao02 ){ digitalWrite( pinoLed02 , HIGH ); } else{ digitalWrite( pinoLed02 , LOW ); } if( estadoDoBotao03 ){ digitalWrite( pinoLed03 , HIGH ); } else{ digitalWrite( pinoLed03 , LOW ); } int intensidadeDoLed = map( valorDoPotenciometro , 0 , 1024 , 0 , 255 ); analogWrite( pinoLed04 , intensidadeDoLed ); }

1.4: minipiano:
os tres botoes tocam tres diferentes notas e o potenciometro controla a frequencia que vemos si e alto o baixo no led brasnco

esquematico

montagem

codigo 1
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13; int pinoBotao01 = 4; int pinoBotao02 = 3; int pinoBotao03 = 2; int frecNotaDo = 260; int frecNotaRe = 290; int frecNotaMi = 329; void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04

, , , ,

OUTPUT OUTPUT OUTPUT OUTPUT

); ); ); );

pinMode( pinoBotao01 , INPUT ); pinMode( pinoBotao02 , INPUT ); pinMode( pinoBotao03 , INPUT );

codigo 2
void loop(){ boolean estadoDoBotao01 = digitalRead( pinoBotao01 ); boolean estadoDoBotao02 = digitalRead( pinoBotao02 ); boolean estadoDoBotao03 = digitalRead( pinoBotao03 ); int valorDoPotenciometro = analogRead( A0 ); if( estadoDoBotao01 ){ digitalWrite( pinoLed01 , HIGH ); tone( 7 , frecNotaDo , 10 ); } else{ digitalWrite( pinoLed01 , LOW ); } if( estadoDoBotao02 ){ digitalWrite( pinoLed02 , HIGH ); tone( 7 , frecNotaRe , 10 ); } else{ digitalWrite( pinoLed02 , LOW ); } if( estadoDoBotao03 ){ digitalWrite( pinoLed03 , HIGH ); tone( 7 , frecNotaMi , 10 ); } else{ digitalWrite( pinoLed03 , LOW ); } int intensidadeDoLed = map( valorDoPotenciometro , 0 , 1024 , 0 , 255 ); analogWrite( pinoLed04 , intensidadeDoLed ); }

materiais
! ! ! ! !
arduino botao momentaneo resitor de 10 KILO ohm placa prototipagem os de conexao

esquematico

montagem

codigo
const int buttonPin = 2; const int ledPin = 13; int buttonPushCounter = 0; int buttonState = 0; int lastButtonState = 0; void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState != lastButtonState) { if (buttonState == HIGH) { buttonPushCounter++; Serial.println("on"); Serial.print("number of button pushes: "); Serial.println(buttonPushCounter, DEC); } else { Serial.println("off"); } } lastButtonState = buttonState; if (buttonPushCounter % 4 == 0) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }

Potrebbero piacerti anche