程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Cas dutilisation du logiciel dans le carnet de développement du noyau micropython: chapitre 5 - fonctions dentrée et de sortie pin de base

編輯:Python

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ésI / o,MicroPython,Pin,MM32F3277

Contenu du manuscrit Les yeux Enregistrement
Contents
PINExpérience de sortie PINExpérience d'entrée Total Noeud Suggestions d'amélioration

 

  • Le contenu de ce livre appartient à MicroPythonNotes de développement du noyau:Tâches expérimentales intégrées dans le livre Contenu de.

Cas d'utilisation du logiciel: PINFonctions d'entrée / sortie de base fournies par le module.
Cette partie du manuscrit comprend::

  1. Expérience de sortie:
  2. Expérience d'entrée:
  • Emplacement dans le manuscrit:

 

§01Les livres Contenu du projet


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 】

Numéro de sérieNom du modeDescription de la fonction1IN_ANALOGEn tant que AD Port d'entrée analogique 2IN_FLOATING Port d'entrée haute résistance 3IN_PULLDOWN Avec port d'entrée de résistance à la traction 4IN_PULLUP Avec port d'entrée de résistance à la traction 5OUT_OPENDRAIN Port de sortie ouvert du drain 6OUT_PUSHPULL Port de sortie Push - pull 7AF_OPENDRAIN Drain open circuit additional function port 8AF_PUSHPULL Ports de fonctions supplémentaires Push - Pull Output

Il existe plusieurs méthodes de réglage du niveau élevé et faible de la broche de sortie: ,Par led Le port, par exemple.

  • Réglage du haut niveau:led(1),led.on(),led.value(1)
  • Réglage du bas niveau:led(0),led.off(),led.value(1)

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())

Un.、PINExpérience de sortie

1、LEDExpérience de scintillation

MCU IO Port Drive External LED Il y a deux modes:

  • Mode d'entraînement actuel de sortie ;
  • Mode d'entraînement actuel d'entrée ;

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 :

  • OUT_PUSHPULL:Mode Push - pull;
  • OUT_OPENDRAIN: Mode ouvert de fuite ;

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

2、 Une seule broche contrôle deux LED

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

2.、PINExpérience d'entrée

1、Contrôle des boutonsLED

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

2、 Caractéristiques de tension du port d'entrée

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 .

 

※ Total Noeud ※


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.

Un.、Suggestions d'amélioration

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:

  • MicroPythonNotes de développement du noyau:Tâches expérimentales intégrées dans le livre

● Liens graphiques connexes:

  • Tableau1-1 Tableau de la colonne mode pin
  • 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
  • Fig.1.1.2 LED Fonctionnement clignotant
  • Fig.1.1.3 UniqueIO Contrôle du port deux LEDCircuit expérimental
  • Fig.1.1.4 UniqueIO Contrôle du port deux LEDAllumez séparément
  • Fig.1.2.1 Utiliser le contrôle du port d'entrée LEDStatut
  • Fig.1.2.2 Changement de clé LEDÉtat de
  • Fig.1.2.3 Tester les caractéristiques de tension du port d'entrée
  • Fig.1.2.4 Tension d'entréeINEt tension de sortie

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved