Caricare il programma su Arduino (il segnale su Pin 2 serve per indicare l'inizio
dell'invio del byte: sincronizzare l'oscilloscopio su questo per
ottenere un visione stabile della trama.)
Collegare CH1 dell'oscilloscopio al PIN 2 di Arduino e CH2 al PIN TX
void setup() {
Serial.begin(9600);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(2,HIGH);
Serial.write( B01010101);
digitalWrite(2,LOW);
delay(2);
}
Il Arduino trasmetterą ripetutamente via seriale il byte
01010101 ad intervalli di
2 mS, analizzare con l'oscilloscopio il segnale TX:
Identificare il bit di start
Identificare il dato seriale trasmesso
Identificare il bit di stop
Misurare il tempo di bit e ricavare la velocitą di trasferimento in bps
Parita Even
void setup() {
Serial.begin(9600,SERIAL_8E1);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(2,HIGH);
Serial.write( B01010101);
digitalWrite(2,LOW);
delay(2);
}
|
|
Parita Odd
void setup() {
Serial.begin(9600,SERIAL_8O1);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(2,HIGH);
Serial.write( B01010101);
digitalWrite(2,LOW);
delay(2);
}
|
|
Parita Even
void setup() {
Serial.begin(9600,SERIAL_8E1);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(2,HIGH);
Serial.write( B00010101);
digitalWrite(2,LOW);
delay(2);
}
|
![]() |
Parita Odd
void setup() {
Serial.begin(9600,SERIAL_8O1);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(2,HIGH);
Serial.write( B00010101);
digitalWrite(2,LOW);
delay(2);
}
|
![]() |
9600 b/s no parity e 1 stop bit
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2,LOW);
mySerial.begin(9600);
}
void loop() {
digitalWrite(2,HIGH);
mySerial.write(B01010101);
digitalWrite(2,LOW);
delay(2);
}
|
![]() |
#include <SoftwareSerial.h>
#define rxPin 10
#define txPin 11
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2,LOW);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop() {
int n;
char c;
while (mySerial.available())
{
c=mySerial.read();
Serial.write(c);
}
digitalWrite(2,HIGH);
for (n=0;n<6;n++)
{
mySerial.print(n);
mySerial.print(":");
mySerial.print(analogRead(n)*5.0/1023);
mySerial.print(" ");
}
mySerial.println("");
digitalWrite(2,LOW);
//delay(100);
}