Balances pour gens analphabète (5 / 6 étapes)

Étape 5: Le code : plein de code

Ici, j’ai ajouter le code complet comme une référence. Il a été écrit en BascomAVR, mais il devrait être assez facile de le traduire à C ou pour arduino. J’ai s’exprimaient la plupart des étapes, mais veuillez communiquer avec moi si quelque chose n’est pas clair pour vous.

$regfile = « m8def.dat » "fichier de Registre pour l’atmega8
$crystal = 8000000 8 MHz fréquence
$baud = 1200 "baudrate = 1200

' Déclaration des variables
Dim count as integer
Dim syscount as byte
Dim i as byte
Dim temp as integer
Poids Dim as Integer
Dim comm(4) as byte
Dim calc(3) as integer
Dim weightwanted as integer
Dim weightwantedram as integer ERAM "stockés en EEPROM
Dim percentplus as byte
Dim percentplusram as byte ERAM "stockés en EEPROM
Dim percentmin as byte
Dim percentminram as byte ERAM "stockés en EEPROM
Dim topvalue as integer
Dim lowvalue as integer

' Pins aliassing
Un Alias Pind.2
B Alias Pind.4
Rouge Alias PORTD.5
Vert Alias PORTD.6
Jaune Alias PORTD.7

« Direction des broches
Config A = entrée

B config = entrée
Config portd.3 = entrée
Config portd.5 = sortie
Config PORTD.6 = sortie
Config PORTD.7 = sortie

config serialin = mise en mémoire tampon, taille = 18, bytematch = 10 18 octets mis en mémoire tampon et déclenche l’interruption en recevant un LF

« le programme d’installation de l’écran LCD
Config Lcdpin = Pin, Db4 = Portc.3, Db5 = Portc.2, Db6 = Portc.1, Db7 = Portc.0, E = Portc.4, Rs = Portc.5
Lcd de config = 16 x 2
curseur hors

"affectant certaines broches 1
Série B
Set pind.2
Set pind.3

« configuration des interruptions externes
Config Int0 = montante
Sur Int0 Getencoder

Int1 config = Falling
int1 menu

Activer les interruptions
Activez Int0
Activez int1

CLS ' efface l’écran

Réinitialiser compteur
Poids de réinitialisation
Remise à zéro syscount

' boucle principale
faire

Sélectionnez la case syscount ' selon syscount un écran est sélectionné pour l’écran lcd

waitms 25

CLS ' efface l’écran

case 0: ' écran principal
weightwanted = weightwantedram ' lit ces 3 variables dans l’EEPROM et les stocke dans des variables globales
percentplus = percentplusram
PercentMin = percentminram
localiser le 1,1 ' écrit les données souhaitées dans l’écran lcd
LCD weightwanted ; « Gr »
localiser 1, 8
Écran LCD »-«; percentmin; " %"
localiser 1, 13
Écran LCD "+"; percentplus; " %"
localiser les 2,1
poids de l’écran LCD ; « Gr »
réinitialiser le rouge ' désactive toutes les LEDs
réinitialiser le vert
réinitialiser le jaune
TopValue = weightwanted * percentplus ' calcul de toutes les valeurs nécessaires.
TopValue = topvalue / 100
TopValue = weightwanted + topvalue
lowvalue = weightwanted * percentmin
lowvalue = lowvalue / 100
lowvalue = weightwanted - lowvalue
Si poids < = topvalue et poids > = assouplir et établir le vert ' définit le voyant d’état correct
Si poids > topvalue puis définissez jaune
Si poids < assouplir puis définissez rouge

cas 1: ' écran de configuration poids

localiser 1,1
écran LCD "Setup: »
localiser les 1,8
écran LCD « Poids »
weightwanted = count ' lit la molette et définit le poids désiré
localiser les 2,8
LCD weightwanted

cas 2: « l’écran « surpoids »

localiser 1,1
écran LCD "Setup: »
localiser les 1,8
écran LCD « + % »
percentplus = count ' lit la molette et définit le surpoids
localiser les 2,8
LCD percentplus

case 3: ' l’écran « insuffisant »
localiser 1,1
écran LCD "Setup: »
localiser les 1,8
écran LCD »-% "
PercentMin = count ' lit la molette et définit l’insuffisance pondérale
localiser les 2,8
LCD percentmin

end select

boucle "fin de la boucle principale

GetEncoder: ' déclenchée par INT0. Lit le mouvement de rotation de la molette

waitus 250
Si A = 1 Then
Si B = 0 alors Incr comptent d’autre Decr comte
End If
GiFr = 64 ' debounce
Retour

menu: ' déclenchée par INT1. Lit le bouton de la molette

syscount incr ' augmente syscount. Cette variable est utilisée pour décider quel écran apparaît
Si syscount > 3 alors syscount = 0
Sélectionnez la case syscount
case 0: percentminram = percentmin ' écrit dans l’EEPROM
cas 1: count = weightwanted
cas 2: weightwantedram = weightwanted ' écrit dans l’EEPROM
Count = percentplus
case 3: percentplusram = percentplus ' écrit dans l’EEPROM
Count = percentmin
end select

waitms 150
GiFr = 128 ' debounce

retour

serial0charmatch: ' est déclenchée par l’interruption de la série
poids = 0 ' réinitialise variables
pour i = 1 à 3
Calc(i) = 0
prochaine

pour i = 1 to 18 "lit les octets nécessaires dans des variables et les autres octets pour vider la mémoire tampon des vidages
Si j’ai = 9 then comm(1) = inkey()
Si j’ai = 10 then comm(2) = inkey()
Si j’ai = 11 then comm(3) = inkey()
Si j’ai = 12 then comm(4) = inkey()
Si j’ai <> 9 et j’ai <> 10 et j’ai <> 11 et j’ai <> 12 puis temp = inkey()
prochaine

pour i = 1 à 4 ' traduire ascii à déc
si comm(i) > 47 puis
comm(i) = comm (i) -48
d’autre
comm(i) = 0
fin si
prochaine

si comm(1) > 0 then calc(1) = comm (1) * 1000 ' formule 1 série de 4 caractères
si comm(2) > 0 then calc(2) = comm (2) * 100
si comm(3) > 0 then calc(3) = comm (3) * 10
poids = calc(1) + calc(2)
poids = poids + calc(3)
poids = poids + comm(4)

retour
fin

Articles Liés

Construire une balance pour peser les ruches

Construire une balance pour peser les ruches

Balance portative de la rucheLe but est de construire une échelle de ruche abeille précis, électronique pour moins de 50 $ qui permet à quiconque de ruches poids 4 / minute – jusqu'à 250 lbs chaque – sans déranger sensiblement la colonie.____________
À l’aide de balance pour contrôler une voiture

À l’aide de balance pour contrôler une voiture

Je fais cet article pour vous montrer mon dernier projet. Ce projet vise à contrôler un électriquement la voiture d'une planche d'équilibre (Conseil d'administration de Nintendo WII balance) via bluetooth. Ce projet a été la présentation sur la Commu
Moule silicone pour Investment Casting pendentif

Moule silicone pour Investment Casting pendentif

Salut!Je travaille avec Jim Kibler dans son atelier. Ensemble nous avons fait des moules silicone pour moulages décoratifs anciens fusils. Plus récemment, j'ai utilisé des moules de silicone pour faire des pendentifs collier en argent sterling de piè
Sacoche pour portable Undercover

Sacoche pour portable Undercover

défi de conception :Faire quelque chose utile de tout ce que vous trouvez.Nous avons décidé de créer un cas de portable qui est fonctionnel et agréable à porter. Ce que nous aimons le plus dans ce cas, c'est qu'il n'est pas évident à d'autres personn
À l’aide de Latex liquide pour créer un effet écailleuse

À l’aide de Latex liquide pour créer un effet écailleuse

pour Halloween cette année, je voulais y aller comme une fille de serpent d'émission freak un 1920 et un élément essentiel du costume engendre un effet réaliste. Après avoir expérimenté plusieurs produits, j'ai trouvé que latex liquide créé le look p
Comment adapter stealthly une canne orthopédique commune pour l’autodéfense

Comment adapter stealthly une canne orthopédique commune pour l’autodéfense

ce Instructable décrira comment modifier une canne orthopédique générique, donc il peut devenir beaucoup plus efficace comme un dispositif de défense personnelle.  Pour moi, ceci a été rendu nécessaire après que j'avais eu la chirurgie de la hanche e
Baume pour les lèvres de Burt DIY de cire d’abeille

Baume pour les lèvres de Burt DIY de cire d’abeille

dans la recherche pour le projet parfait qui utilise la cire, nous sommes devenus forts abeille-lievers dans une économie rendu sur un favori classique d'argent : Bees baume pour de Burt les lèvres ! À une moyenne de 3-4 $ par tube, que les choses aj
Construction d’EVA Foam armure pour le Crafter Novice

Construction d’EVA Foam armure pour le Crafter Novice

Si vous êtes un nerd ou pas, créer votre propre armure costume vous donnera le sentiment de satisfaction d'accomplissement et lorsqu'il est porté avec d'autres éléments de costume, le résultat visuel va être magnifique. Ce manuel d'utilisation donner
Mitaines adaptatifs pour des besoins spéciaux ou de personnes handicapées enfants et adultes

Mitaines adaptatifs pour des besoins spéciaux ou de personnes handicapées enfants et adultes

ces mitaines sont parfaits pour des besoins particuliers des gens enfants, adultes et personnes âgées quiont de la difficulté à porter des mitaines et gants traditionnels.Sans un pouce, ils sont faciles à mettre et garder sur et aident à conserver la
Comment connecter une Balance électronique ou l’échelle à un PC et lire les valeurs de poids directement dans Excel

Comment connecter une Balance électronique ou l’échelle à un PC et lire les valeurs de poids directement dans Excel

plupart des balances électroniques et des balances de laboratoire ont une RS232 (série) ou un USB port mais aucuns instructions ne sont normalement assurés pour vous montrer comment connecter correctement à votre PC ou comment faire pour entrer des v
Échec de la tentative à une barre de remorquage pour vélo enfant

Échec de la tentative à une barre de remorquage pour vélo enfant

Ma fille a été à cheval son deux-roues pour près d'un an, maintenant.  Elle a une inquiétude saine sur CIRC. allumé ou passage, « grandes rues; » et plusieurs de ses amis ont ces cycles « remorquage roue » hors de prix (voir la deuxième photo).  Le g
Faire votre propre fenêtre PDMS pour Ember

Faire votre propre fenêtre PDMS pour Ember

Lorsque la fenêtre PDMS en plateau en résine de la braise est utilisée pendant une longue période, il tend à obtenir nuageux et endommagés. Au lieu d'obtenir un tout nouveau bac, il existe un moyen de faire une nouvelle fenêtre et remplacer celui end
Comment créer un interrupteur à levier pour un trou de Golf Mini Pirate

Comment créer un interrupteur à levier pour un trou de Golf Mini Pirate

Ohé ! Avez-vous jamais voulu créer un trou de golf mini ou nécessaire d'en créer un pour un événement de bureau ? Avez-vous moins puis une fin de semaine pour obtenir il fait et je voulais lui donner quelque chose de très spécial à ampli vers le haut
Remodelage de bungalow deuxième étage

Remodelage de bungalow deuxième étage

Le remodelage de votre 2eétage de style bungalow.De compensation sur la jonque, à faire des démonstrations et recadrage des murs, à l'installation de quelques étagères intégrés personnalisés. Finshing avec peinture et mise à jour de la salle d'eau. À