Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Enregistrement de variable
#1
Je tente de faire travailler ensemble une Raspberry Pi et une carte Arduino par le port USB. Mon problème est d'enregistrer dans une variable la valeur que me renvoie L'arduino.
J'arrive à afficher cette valeur avec "print (ser.readline())" mais je voudrai envoyer cette valeur dans une variable nommée "potar" pour pouvoir travailler avec.
je sais le faire sur Arduino mais je découvre Raspberry et je suis perdu.
Merci d'avance pour la réponse.
Répondre
#2
Et tout simplement avec un potar = ser.readline(), ça ne marche pas ?
Répondre
#3
J'avais essayé cette solution mais je ne l'avais pas mise au bon endroit du script. Du coup j'ai fait un gros effort de réflexion et j'ai trouvé ou la mettre. cela marche très bien. Merci.
Répondre
#4
Une petite question, suite à mon précédent message. La valeur que je reçois passe bien dans ma variable et lorsque j'affiche celle ci, sa valeur est suivie d'un carré, du coup, je ne peux pas utiliser cette valeur pour faire de calcul. comment peut on éviter ce maudit carré.

Précision mon script et en python 2.7.9.

#!/usr/bin/env python
#-*- coding: utf-8 -*-

#Le Raspberry Pi demande une information à l'Arduino puis l'affiche à l'écran

import serial #bibliothèque permettant le communication série
import time #pour le delai d'attente entre les messages

ser = serial.Serial('/dev/ttyACM0',9600)
time.sleep(2) #On attend un peu pour que l'Arduino soit prêt
ordre = 0 #Déclaration de la variable

while True: #Boucle répétée jusqu'à interruption du programme
ser.write('5') #Envoi de l'ordre à Arduino
potar=ser.readline() #Lecture du retour Arduino
time.sleep(1) #On attend 1 seconde
print(potar) #On affiche la réponse

if potar > 256: #Prise en compte de la valeur
ordre = 1 #Mise a jour de la variable
print(ordre) #Impression de la variable mise à jour

Merci d'avance
Répondre
#5
Il faudrait peut-être que tu remplaces tout ce qui n'est pas numérique par rien dans ta variable:
Code :
import re
potar = re.sub('[^0-9]', '', potar)
Attention, potar est alors une chaîne, pas un nombre...
Répondre
#6
Ca marche merci et bravo pour la vitesse de réponse.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

A propos de Communauté francophone RPi

Communauté francophone RPi est un forum d'aide et de partage autour du Raspberry Pi et des micro-ordinateurs.