Pesquisar neste blog

30/04/2020

Array em JavaScript

console.log(typeof Array, typeof new Array, typeof[])

let aprovados = new Array('Bia', 'Carlos', 'Ana')
console.log(aprovados)

console.log(aprovados[0])
console.log(aprovados[2])

console.log(aprovados[3])//posição inválida

aprovados[3] = 'Paulo'//alimentando a posição 3
aprovados.push('Abia')//empilhando Abia
console.log(aprovados)
console.log('Tamanho do array = ',aprovados.length)//tamanho do array

console.log(aprovados[8] === undefined)// se o valor for retornado

aprovados.sort()//ordenando o array
console.log(aprovados)

aprovados.splice(3)//elimina o resto e deixa apenas os 3 primeiros
console.log(aprovados)

aprovados.splice(1, 2)//remove 2 elementos
console.log(aprovados)


Saída

29/04/2020

Contador ímpar, par e crescente com Arduino




Código para contador em ímpar

byte contador = 0;

void setup(){
  DDRD = B11110000;//para contar em ímpar
}

void loop(){
  while(contador <= 9){
    PORTD = contador<<1;//rotaciona 2 vezes para esq. o contador e manda para os pinos de saída
     delay(500);
     contador++;
  }
  contador = 0;
}


Código para contar em par

byte contador = 0;

void setup(){
  DDRD = B00001111;//para contar em par
}

void loop(){
  while(contador <= 9){
    PORTD = contador<<1;//rotaciona 2 vezes para esq. o contador e manda para os pinos de saída
     delay(500);
     contador++;
  }
  contador = 0;
}




Código para contagem crescente

byte contador = 0;

void setup(){
  DDRD = B00001111;
}

void loop(){
  while(contador <= 9){
    PORTD = contador;
     delay(500);
     contador++;
  }
  contador = 0;
}

26/04/2020

Lista de exercícios 1 CCA

1. Quais são o período e a freqüência de uma tensão que tem 12 ciclos em 46 ms ?

Solução: 

f = 1/t = 12 / (46/1000) = 261 Hz

t = 1/f  = 1 / 261 = 3,83 ms


2. Para uma onda de 60 Hz, qual é o tempo decorrido em um deslocamento de 30° E do fasor ?

Solução: 

t = 1/f = 1/60 = 16,66... ms

360° -----> 16,66 ms
30° -------> x

x = 1,388 ... ms


3. Uma tensão senoidal de 5V de pico e freqüência 1kHz é aplicada a um resistor de 10Ω. Pede-se:

a) a expressão matemática da tensão;
Solução: 

w = 2.π.f  =  2.π.1000 = 6283,18 rad/s
V(t) = A.sen(w.t)
V(t) = 5.sen(6283,18.t)

b) período e freqüência;
Solução:

t = 1/f = 1/1000 = 1ms

f = 1 KHz

c) tensão média e tensão RMS;
Solução:

Vmd = 2 . 0 / π = 2 . 5 /π = 0 V
Vrms = V / √2 = 5 / √2 = 3,535 V


d) a potência média dissipada no resistor
Solução:

Pm = V.V/R = 5.5 / 2.10 = 1,25 W


4. Determinar o valor instantâneo da corrente i = 80 sen ( 400t - 30° ) A em t = 10ms.

Solução:

i(t) = 80.sen(400.10/1000 -(30)) = - 35,07 A


5. A amplitude (valor máximo) e a freqüência de uma corrente alternada senoidal valem, respectivamente, 20mA e 1khz. Determine o valor instantâneo da corrente, decorridos 100μs após ela ter atingido o valor zero. 

Solução:

W = 2.π.f = 2.π.1000= 6283,18 rad/s

i(t) = Ip.sen(w.t)
i(100) = (20/1000).sen (6283,18 . 100/100x106 ) = 11,75 mA


6. Determine o instante de tempo em que uma CA de amplitude 100 mA e f = 2 Mhz atinge 25 mA.

Solução:

i(t) = A.sen(wt + θ )

i(t) / A = sen(w.t)

t =  sen-1(i / A) /w

t =  sen-1(25 / 100) / 2.180. 2 .106

t = 20 ns


7. Determinar as relações de fase e representar fasorialmente as ondas:

a) v = 60 sen ( 377t +50° ) V ; i = 3 sen ( 377t - 10° ) A.
Solução:


θ = 50° - - 10° = 60°
_V_ está adiantado(a) de _60°_ graus em relação a _i_.


b) v1 = 311 sen ( 100t + 50° ) V ; v2 = 125 sen ( 100t +10° ) V.
Solução:


θ = 50° - 10° = 40°
_V1_ está adiantado(a) de _40°_ graus em relação a _v2_.


c) i1 = 10 sen ( 377t - 40°) A ; i2 = 8 sen ( 377t - 10° )A.
Solução:



θ = 40° - 10° = 30°
_i1_ está adiantado(a) de _30°_ graus em relação a _i2_.


8. Duas fontes de tensão senoidal de mesma freqüência e com valores máximos de 200V e 100V estão ligadas em série. Considerando que as ondas estão defasadas de 90°, determinar o valor que um voltímetro CA mede para a associação.

Resolução:

E2= 2002 + 1002
E = 223,60

ERms = 223,60 /√2  = 158,11 V

9. Calcular a tensão média para a forma de onda ao lado.


Solução:

Vm = 10 / 2 = 5V


10. No gráfico ao lado, a tensão varia de acordo com a seguinte equação: v = 5.sen(α) . Determine o valor da tensão para:


a) α = 400
Solução:

v(t) = 5.sen(400) = 3,214 V

b) α = 0,8 π rad
Solução:

v(t) = 5.sen(0,8 . 180) = 2,94 V


11. No gráfico ao lado está representado o comportamento de uma tensão alternada senoidal. Determine a equação característica desta tensão e os valores do período e da freqüência.

Solução:

t = (25 - 5) = 20 ms

f = 1/t = 1/((20) /1000 ) = 50 Hz

W = 2.π.f = 2.π.50 = 314,16 rad/s

360° ------> 20 ms
θ  -------> 5 ms

θ = 90°

v(t) = 10.sen(314,16.t + 90°) 


12. Ao lado, temos o desenho da tela de um osciloscópio, onde no eixo horizontal está representado o tempo (0,2 miliseg/divisão). A divisão citada refere-se aos espaços maiores (quadrados). Determine o valor do ângulo θ de defasagem entre as duas senoides. Não esqueça que deve ser considerado os picos mais próximos a fim de se identificar qual senóide está avançada em relação a outra.


Resolução:

Tensão

360° ---- > 1 ms
θv ---------> 0,2 . 4

θv = 288°

Corrente

360° ---- > 1 ms
θi ------- > 0,2 . 2

θi = 144°

θi = |288 - 144| = 144°


13. Na tela do osciloscópio desenhado ao lado, no eixo vertical está representada a tensão (0,1V/divisão) e no eixo horizontal está representado o tempo (50μs/divisão). A divisão citada refere-se aos espaços maiores (quadrados). Determine o valor:


a)do período
Resolução:

t = 50 . 4 = 200 us


b)da freqüência;
Resolução:

f = 1/t = 1 / 200 = 5 KHz


c)de pico a pico da tensão;
Resolução:

Vp = 0,1 . 4 = 400 mV


d)eficaz da tensão.
Resolução:

Vrms = 400 / 2 = 141,42 mV


14. Considerando que, no gráfico ao lado, a tensão varia de acordo com a equação v = 10.sen(377 t ), determine os instantes de tempo (em graus, rad e miliseg) em que a tensão atinge o valor de 4V.

Resolução:

4 = 10.sen(α1)
α1 = sen-1(4/10) = 23,578°
α1 θ. π /180 =23,578 .  π /180 =  0,411 rad

α2 =180 - 23,578 = 156,42°
α2 = θ. π /180 =156,42 . π /180 = 2,73 rad

α = W . t

t1 = α / W = 0,411 / 377 = 1,09 ms

t2 = α / W = 2,73 / 377 = 7,24 ms


15. Nos dois gráficos dados, determine em cada caso:


a) o valor do período;
Resolução:

ta = 1/f = 1/60 = 16,67 ms

tb = 1/f = 1/1000 = 1 ms


b) o valor eficaz da tensão (ou corrente);
Resolução:

Vrms = 25 /√2 = 17,68 V

Irms = 3 / √2 = 2,12 mA

c) a equação característica da tensão (ou corrente).
Resolução:

W = 2.π.f =  2.π.60 = 377 rad/s
θ = π / 6 = 180 / 6 = 30°

V(t) = 25.sen(377t + 30°)


W = 2.π.f =  2.π.1000 = 6283,18 rad/s
θ = π / 3 = 180 / 3 = 60°

V(t) = 3x10-3 .sen(6283,18t - 60°)


16. Sabendo-se que o valor médio de uma grandeza alternada senoidal equivale ao nível CC desta grandeza, determine o valor médio da tensão, cujo comportamento está representado no gráfico ao lado.


Resolução:

Vm = (2 - 16) /2 =  -7 mV


17. No desenho a abaixo, temos uma fonte CC de 120V que alimenta uma carga consumidora de 3,6 W. Determine os valores máximo (valores de pico) de tensão e de corrente relativos ao caso b, de modo que a potência nesta situação seja a mesma do caso anterior (3,6 W)


Resolução:

Vrms = Vp / 2 = 120 . 2 = 169,7 V

P = V.i = 3,6 / 169,7 = 0,02121 A

Im / 2 = V / Vp =  3,6 . 2 / 169,7 = 42,42 mA


18. Nos dois gráficos dados, determine em cada caso:


a) o valor do período;
Resolução:

t = 1 / 25 = 40 ms
t = 1 / (10 . 1000) = 0,1 ms = 10 us


b) o valor eficaz da tensão (ou corrente);
Resolução:

Vrms = 0,01 / 2 = 7,071 mV

Irms = 2x10-3 / 2 = 1,41 mA

c) a equação característica da tensão (ou corrente).
Resolução:

W = 2.π.f = 2.π.25 = 157,08 rad/s
V(t) = 0,01.sen(157,08t - 11π/18) [V]


W = 2.π.f = 2.π.10.1000 = 62831,85 rad/s
I(t) = 2x10-3.sen(62831,858t + 3π/4)  [A]

15/04/2020

Programa 22 Contador

Contador com Arduino





Código
,
int numero[10][7] = {
  {1,1,1,1,1,1,0},//0
  {0,1,1,0,0,0,0},//1
  {1,1,0,1,1,0,1},//2
  {1,1,1,1,0,0,1},//3
  {0,1,1,0,0,1,1},
  {1,0,1,1,0,1,1},
  {1,0,1,1,1,1,1},
  {1,1,1,0,0,0,0},
  {1,1,1,1,1,1,1},
  {1,1,1,1,0,1,1},//9
  };

const int segmentos[8] = {2,3,4,5,6,7,8,9};//pinos de saída

void setup() {
  // put your setup code here, to run once:
  for(int i = 0; i <= 6; i++){
    pinMode(segmentos[i], OUTPUT);//liga o led do vetor
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  for(int i = 0; i <= 9; i++){
    mostraNumero(i);
    delay(500);
  }
}

void mostraNumero(int valor){
  int pino = 2;
  for(int i = 0; i < 7; i++){
    digitalWrite(pino, numero[valor][i]);//fixa na linha e aciona os bits
    pino++;
  }
}

07/04/2020

Programa 21 String 2

Exibindo a posição de um caractere usando string 


String textoRecebido = "";
unsigned long delay1 = 0;

String padR(String texto, int tamanho, char caractere = ' ');
String padL(String texto, int tamanho, char caractere = ' ');
String strZero(String texto, int tamanho);
String replicate(char caractere, int vezes);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  String texto = "blogdaengenhariacotidiana.blogspot.com";

  Serial.println(texto);
  Serial.println();

  Serial.print("Caracter na posição (5): ");
  Serial.println(texto.charAt(5));
}

void loop() {
  // put your main code here, to run repeatedly:

}


METODO 2: Inserir carácter em posição qualquer 

String textoRecebido = "";
unsigned long delay1 = 0;

String padR(String texto, int tamanho, char caractere = ' ');
String padL(String texto, int tamanho, char caractere = ' ');
String strZero(String texto, int tamanho);
String replicate(char caractere, int vezes);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  String texto = "blogdaengenhariacotidiana.blogspot.com";

  Serial.println(texto);
  Serial.println();

  texto.setCharAt(10, 'C');//remove o caracter na posicao e insere o novo
  //texto[10] = 'D'; // metodo 2

  Serial.print("Texto Modificado: ");
  Serial.println(texto);
}

void loop() {
  // put your main code here, to run repeatedly:

}

MÉTODO 3: Pesquisar uma letra em posição qualquer

String textoRecebido = "";
unsigned long delay1 = 0;

String padR(String texto, int tamanho, char caractere = ' ');
String padL(String texto, int tamanho, char caractere = ' ');
String strZero(String texto, int tamanho);
String replicate(char caractere, int vezes);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  String texto = "blogdaengenhariacotidiana.blogspot.com";

  Serial.println(texto);
  Serial.println("01234567890123456789012345678901234567890123456789");
  Serial.println("0    1     2     3");
  Serial.println();

  Serial.print("Posição do Texto Procurado(pot): ");
  Serial.println(texto.indexOf("pot"));//procurando pot

  Serial.print("Primeira ocorrencia! posição: ");
  //Serial.println(texto.IndexOf('n'));
  Serial.println(texto.indexOf('n', 0));//procura a partir da posicao 0

  Serial.print("última ocorrencia! posição: ");
  //Serial.println(texto.lastIndexOf('g'));
  Serial.println(texto.indexOf('g', 15));//procura a partir da posicao 0
}

void loop() {
  // put your main code here, to run repeatedly:

}


05/04/2020

Programa 20 String no arduino


String textoRecebido = "";
unsigned long delay1 = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);//permitir escrever no monitor serial
  
}

void loop() {
  // put your main code here, to run repeatedly:
  char caracter;
  if(Serial.available()){//verifica se tem alguma informação disponivel
    caracter = Serial.read();//le um caracter
    textoRecebido += caracter; // armazena dentro da string
    delay1 = millis();//envia os caracters para o sketup
  }

  if(((millis() - delay1) > 10) && (textoRecebido != "")){
    Serial.print("Texto digitado: ");
    Serial.print(textoRecebido);

    textoRecebido = "";
    
  }

}


Saída:

Programa 19 Caracter

Exibir caracteres no Arduino

unsigned char palavra;
char letra, var;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  palavra = 80;
  letra = 'H';
  var = 9;

  Serial.println(char(palavra));//convertendo em caracter
  Serial.println(letra);
  
  Serial.print(var);//no meio da tela
  Serial.println(letra, DEC);//imprimindo em decimal
  Serial.println(letra, BIN);// binário
  Serial.println(letra, HEX);//hexadecimal
  Serial.println(letra, OCT);//OCTAL

  Serial.println("\tOlá mundo !TESTE\n");
  Serial.println("Primeira frase.\0Segunda frase");
}

void loop() {
  // put your main code here, to run repeatedly:

}