Jane. Suke: Cet article donne MicroPythonNotes de développement du noyau:Tâches expérimentales intégrées dans le livre À propos des cas d'utilisation du logiciel de port MCU.
Mots clés
:I / o,MicroPython,Pin,MM32F3277
Cas d'utilisation du logiciel: PINFonctions d'entrée / sortie de base fournies par le module.
Cette partie du manuscrit comprend::
- Expérience de sortie:
- Expérience d'entrée:
- Emplacement dans le manuscrit:
Utiliser le module Pin Peut être utilisé IO Port configuré pour l'entrée、Produits、Fonctions supplémentaires et autres modes.La syntaxe d'utilisation de base est:
led = Pin('PB2', mode=Pin.OUT_PUSHPULL)
L'énoncé ci - dessus sera un micro - ordinateur à puce unique PB2 Pin configuré comme pin de sortie Push - pull , Et défini comme une variable led .Parmi eux Pin Le premier paramètre est la chaîne de nommage de la broche MCU , Le deuxième paramètre est le mode pin . Les modes de sortie pin disponibles comprennent: :
【Tableau1-1 Tableau de la colonne mode pin 】Il existe plusieurs méthodes de réglage du niveau élevé et faible de la broche de sortie: ,Par led Le port, par exemple.
Les méthodes de lecture du niveau logique du port sont les suivantes: ,Par led Le port, par exemple.
key = Pin("PC1", Pin.IN_PULLUP)
print(key.value())
print(key())
MCU IO Port Drive External LED Il y a deux modes:
Dans l'expérience suivante, le mode d'entraînement du courant de sortie est utilisé pour compléter la paire externe LEDDrive.
▲ Fig.1.1.1 Un micro - ordinateur à puce uniqueLEDDeux modes
Gauche.: Mode d'entraînement actuel de sortie ;A droite: Mode d'entraînement actuel d'entrée
Utilisation Pin Contrôle du niveau élevé et faible de la broche MCU , Entraînement externe LED Clignotant. La plate - forme matérielle expérimentale est Un simple tableau expérimental ,Parmi eux PB2 Connexion externe LED. Haut niveau allumé,Bas niveau éteint.
Le Code du logiciel expérimental est le suivant: :
from machine import Pin
def delay(loop=10000):
for _ in range(loop):
pass
led = Pin('PB2', mode=Pin.OUT_PUSHPULL)
print('Test LED.')
while True:
led(1)
delay(50000)
led(0)
delay(50000)
Dans le logiciel,D'abord PB2 Définition Pin de sortie,Le mode est Push - Pull Output.Quand c'est à haute tension, Le courant de sortie peut être allumé LED. La sortie pin comprend deux modes :
Conduite par courant de sortie LED,Vous ne pouvez choisir que PUSHPULLMode; Conduite avec courant d'entrée LED, Les deux modes ci - dessus sont disponibles .
Votre attention, s'il vous plaît., Dans cet exemple de logiciel ,C'est écrit. delay Délai d'exécution du logiciel . Derrière ce livre , Le module de minuterie interne sera introduit time,L'avenir delay Les sous - programmes peuvent utiliser time Dans le module sleep Remplacement de la fonction de corrélation .
▲ Fig.1.1.2 LED Fonctionnement clignotant
Le but de cette expérience est de montrer que les broches de sortie du micro - ordinateur à puce unique sont configurées en deux modes de sortie différents. ( Mode Push - pull et mode ouvert de fuite )La différence entre. La broche de sortie du micro - ordinateur à puce unique est basse tension , Les deux modes peuvent absorber le courant de l'extérieur ; La broche de sortie du micro - ordinateur à puce unique est haute , Le mode Push - pull peut produire du courant , Mais le mode ouvert du drain est équivalent à un état de haute résistance .
Dans des circonstances exceptionnelles, Besoin d'un micro - ordinateur à puce unique Un IO Le port peut contrôler les deux en même temps indépendamment LED État de. L'expérience suivante est d'utiliser LED La caractéristique de conductivité unidirectionnelle et la caractéristique de seuil de tension conductrice de IO Le port contrôle deux LED Statut. Le schéma du circuit expérimental est le suivant: :
▲ Fig.1.1.3 UniqueIO Contrôle du port deux LEDCircuit expérimental
Deux dans le circuit LED C'est blanc ou bleu LED, La tension d'allumage est supérieure à 2.5V, Donc la tension du micro - ordinateur à puce unique VCC=3.3V Pas assez pour conduire directement les deux en série LED . Lorsque la sortie du micro - ordinateur à puce unique est à haute résistance ,Deux. LED db éteint; Lorsque la sortie de la broche MCU est faible ,LED1Allumez; Lorsque la sortie de la broche MCU est élevée, ,LED2Allumez; Lorsque la broche du microprocesseur à puce unique est sortie alternativement à haute fréquence 、Temps de faible puissance,LED1、LED2 Sera allumé en même temps .
from machine import Pin
import time
led = Pin("PC0", mode=Pin.OUT_OPENDRAIN)
led(1)
ledstatus = 0
def ledout(status):
global led
if status == 0:
led = Pin("PC0", mode=Pin.OUT_OPENDRAIN)
led(1)
else:
led = Pin("PC0", mode=Pin.OUT_PUSHPULL)
if status == 1:
led(1)
elif status == 2:
led(0)
else:
led(1-led())
print("Test two LEDs.")
count = 0
while True:
ledout(ledstatus)
count += 1
if count >= 200:
count = 0
ledstatus += 1
if ledstatus >= 4: ledstatus = 0
time.sleep_ms(5)
Dans la procédure ci - dessus, La boucle principale est utilisée time.sleep_ms La fonction retarde ,Tous les 5ms Par fonction ledout Modifications LED Port de contrôle led Configuration et état de . In ledout En fonction, Selon les entrées status Valeur 0,1,2,3, Réglage séparé led Pour Sortie haute résistance 、Haut niveau、 Faible niveau et changement d'état .
Dans le cycle principal ,Tous les 1 Une seconde. led Statut 0、1、2、3 Basculer entre, Pour les deux LED Est situé à Tout est éteint.、LED1 Lumière.、LED2 Lumière.、 Tout s'allume .
▲ Fig.1.1.4 UniqueIO Contrôle du port deux LEDAllumez séparément
Choisissez SCM PC1 Définir comme port d'entrée clé , Utilisez son contrôle d'état LED L'éclairage de.
▲ Fig.1.2.1 Utiliser le contrôle du port d'entrée LEDStatut
Les codes d'essai sont les suivants::
from machine import Pin
led = Pin("PC0", Pin.OUT_PUSHPULL)
key = Pin("PC1", Pin.IN_PULLUP)
while True:
led(key())
Utilisation directe des ports d'entrée key() Obtenir l'état du port d'entrée , Changez sa valeur led Niveau de sortie. Parce que le port d'entrée est relié au sol par une clé ,Donc C'est l'initialisation key Quand, Le mode d'entrée avec résistance à la traction est utilisé .
▲ Fig.1.2.2 Changement de clé LEDÉtat de
Micro - ordinateur à puce unique MM32F3277 Pin as IO Port d'entrée, Les caractéristiques d'entrée sont équivalentes à un comparateur , Le seuil du comparateur est la moitié de la tension de fonctionnement (3.3/2 = 1.65V). Lorsque la tension d'entrée est supérieure au seuil , Le niveau logique d'entrée est 1, Lorsque la tension d'entrée est inférieure au seuil , La logique d'entrée est 0 .
Application de la tension numérique Programmable en courant continu au port d'entrée du micro - ordinateur à puce unique PC1, Toujours exécuter le programme clé ci - dessus ,Oui. PC1 Le niveau logique d'entrée passe par PC0 Produits. Le diagramme de circuit des caractéristiques de tension du port d'entrée de mesure est présenté dans la figure ci - dessous. .
▲ Fig.1.2.3 Tester les caractéristiques de tension du port d'entrée
Mesurer la relation entre la tension d'entrée et le niveau de sortie à l'aide d'un multimètre ,Comme le montre la figure ci - dessous. Vous pouvez voir que lorsque la tension du port d'entrée est supérieure à 1.65VHeure,La sortie est haute;Moins de1.65VHeure,La sortie est basse.
▲ Fig.1.2.4 Tension d'entréeINEt tension de sortie
Programmer les caractéristiques du port d'entrée dans l'expérience de ce chapitre , C'est pour le prochain chapitre utime Dans l'expérience,Utiliser Pin Pour mesurer certaines quantités physiques en préparation .
Cet article donne MicroPythonNotes de développement du noyau:Tâches expérimentales intégrées dans le livre À propos des cas d'utilisation du logiciel de port MCU.
Maintenant cette version, Impossible d'autoriser le passage direct Pin.mode C'est exact. PinModifier les propriétés de. Par exemple,:
led = Pin("PC0", mode=Pin.OUT_OPENDRAIN)
Utiliser led.mode = Pin.OUT_OPENDRAIN C'est illégal.
Il est proposé d'ajouter l'adoption de led.mode Modifier directement,Peut améliorer l'efficacité de l'exécution du programme.
■ Liens vers des documents connexes:
● Liens graphiques connexes: