Escolar Documentos
Profissional Documentos
Cultura Documentos
Uberaba - MG
1 ETAPA:
2 ETAPA: ( 3 4 )
3 ETAPA: (2 6 8 )
4 ETAPA: (3 5 6 7 )
5 ETAPA: (4 )
6 ETAPA: (5 7 8 )
7 ETAPA: (6 )
8 ETAPA: (7 9 )
9 ETAPA: 8
10 ETAPA: 9
Sendo S o sinal de entrada e D deslocamento de 1 bit direita, 2
deslocamento de 2 bits direita e assim sucessivamente. Sendo assim, o sinal
embaralhado T a soma exclusiva (ou exclusivo) de todos estes, devido
realimentao, sendo assim:
= 1 2 6 7 8
Para o desembaralhamento, por se tratar de apenas uma etapa, a saida
R fica:
= 1 3 4
Com o embaralhamento e o desembaralhamento em mos, bastou-se
implement-los nas linhas de cdigo do arduino, as quais ficaram da seguinte
forma:
#define entrada A0
#define saida A1
int
outPin = 9;
int
leitura = 0;
double
ultimo_tempo = 0;
double
intervalo = 0;
int
cod, decod;
int
float
out;
void setup() {
// put your setup code here, to run once:
pinMode (outPin, OUTPUT);
pinMode (entrada, INPUT);
pinMode (saida, INPUT);
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()){
char received=Serial.read();
if (received == 'a')
{
sendon = 1;
}
if (received == 'b')
{
sendon = 0;
}
}
if (sendon == 1){
leitura = analogRead(entrada);
cont++;
ultimo_tempo = millis();
intervalo = 0;
//IMPRIME O VALOR LIDO
Serial.println(leitura, BIN);
Serial.println(leitura, DEC);
//CODIFICAO
cod = leitura^(leitura>>1);
cod = cod^(leitura>>2);
cod = cod^(leitura>>6);
cod = cod^(leitura>>7);
cod = cod^(leitura>>8);
//IMPRIME O VALOR CODIFICADO
Serial.println(cod, BIN);
Serial.println(cod,DEC);
//DECODIFICAO
decod = cod^(cod>>1);
decod = decod^(cod>>3);
decod = decod^(cod>>4);
//IMPRIME O VALOR DECODIFICADO
Serial.println(decod, BIN);
Serial.println(decod, DEC);
}
}
}
Figura 2- Embaralhamento 1.
Figura 3- Embaralhamento 2.
Desta forma, fica claro que a codificao pode ser melhorada, basta
1
<<
2
R = 39 k;
C = 1nF;
Obteve-se uma frequncia de corte 4. Vale ressaltar tambm,
#include <TimerOne.h>
#define entrada A0
#define saida A1
int
outPin = 3;
int
leitura = 0;
double
ultimo_tempo = 0;
double
intervalo = 0;
int
cod, decod;
int
float
out, outpwm;
void setup() {
// put your setup code here, to run once:
TCCR2A = 0xA3;
//Configura operao em fast PWM, utilizando
registradores OCR2x para comparao
setFrequency(1);
7.8kHz)
void loop() {
// put your main code here, to run repeatedly:
option frequency
62.5 kHz
7.81 kHz
1.95 kHz
976.56 Hz
488.28 Hz
244.14 Hz
61.03 Hz
*/
TCCR2B = option;
} //end setFrequency
value = value/100;
OCR2B = duty;
} //end setDuty_pin3