Utilisation de l'Aduino Uno
Utilisation de l'arduino comme interface
Première solution:
Prérequis:
Il faut que la communication du Raspberry soit sur 19200 Baud, car j’utilise un Attiny85 pour mettre à niveau les signaux. Voir chapitre ici.
Enlever le micro-contrôleur de la carte Arduino UNO
En premier lieux, j'ai créé une interface 5V vers 3,3V pour que les signaux soient compatibles. Mais cela fonctionne jusqu’à 19200Baud.
Programme de mon Attiny qui copie les entrées vers les sorties:
/*
* Attiny_conv.c
*
* Created: 25/05/2014 18:55:40
* Author: Christophe
*/
#include <avr/io.h>
int main(void)
{
DDRB=0b00010010;
while(1)
{
if(PINB & (1<<PINB3)){
PORTB |= (1<<PB1);}
else {
PORTB &= ~(1<<PB1);}
if(PINB & (1<<PINB2)) {
PORTB |= (1<<PB4);}
else{
PORTB &= ~(1<<PB4);}
}
}
Compiler le programme avec Atmel Studio6. Charger le dans votre Attiny avec AVRDUDESS et votre programmateur . Téléchargement du fichier Hex ici.
Raccordement:
Arduino Attiny Raspberry
+3,3V Pin8
GND Pin4 Pin6
RX Pin0 Pin2 =>Pin6 TX Pin8
TX Pin1 Pin3=>Pin7 RX Pin10
Test avec Putty à 19200Baud. Le port sera celui de votre Arduino.
Ça fonctionne correctement.
Deuxième solution:
Faire un pont diviseur de tension sur la sortie de l'Arduino pour que le Raspberry n'est qu'une tension de inférieur à 3,3V.
Pour cela j'utilise deux résistances d'1KΩ.
R1=R2=1KΩ
Raccordement:
Arduino: Raspberry
RX Pin0 ---- >Sur résistance R1 ----> RX Pin10
TX Pin1 ---------------------------------------> TX Pin8
Gnd -----------> Sur résistance R2
Ce montage fonctionne jusqu'au 115200Baud. C'est simple et efficace.
Test:
Voila ça fonctionne à 115200Baud.
Mise à jour 01/06/2014.
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide facilement