Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by MIDItheKID ( 12 years ago )
import RPi.GPIO as GPIO
import time
from time import sleep
import math
import sys
import decimal

GPIO.setmode(GPIO.BCM)
GPIO.setup(7, GPIO.IN)
GPIO.setup(0, GPIO.OUT)
GPIO.setup(1, GPIO.OUT)
GPIO.setup(4, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(21, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(10, GPIO.OUT)
GPIO.setup(9, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(14, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(8, GPIO.OUT)

# Set "circ" to circumference of wheel
circ = 6  
pass1 = 1
pass2 = 1
inwait = str()
 
SecPerClick = 1
stopcount = 1
firstdig = 0
 sec
MPH = 0
lessthan10 = False


def display(firstdig,secondig,lessthan10):

# Check to see if the speed is less than 10 MPH
    if (lessthan10 == True):
        GPIO.output(9, False)
    elif (lessthan10 == False):
        GPIO.output(9, True)

# Turn off all lights except decimal
    GPIO.output(1, True)
    GPIO.output(4, True)
    GPIO.output(17, True)
    GPIO.output(0, True)
    GPIO.output(21, True)
    GPIO.output(22, True)
    GPIO.output(10, True)
    GPIO.output(14, True)
    GPIO.output(15, True)
    GPIO.output(18, True)
    GPIO.output(11, True)
    GPIO.output(23, True)
    GPIO.output(25, True)
    GPIO.output(24, True)
    GPIO.output(8, True)

# Turn on lights for first digit
    if (firstdig == 0):
        GPIO.output(1, True)
        GPIO.output(4, True)
        GPIO.output(17, True)
        GPIO.output(10, True)
        GPIO.output(22, True)
        GPIO.output(21, True)
        GPIO.output(0, True)
    elif (firstdig == 1):
        GPIO.output(17, False)
        GPIO.output(10, False)
    elif (firstdig == 2):
        GPIO.output(4, False)
        GPIO.output(17, False)
        GPIO.output(0, False)
        GPIO.output(21, False)
        GPIO.output(22, False)
    elif (firstdig == 3):
        GPIO.output(4, False)
        GPIO.output(17, False)
        GPIO.output(0, False)
        GPIO.output(10, False)
        GPIO.output(22, False)
    elif (firstdig == 4):
        GPIO.output(1, False)
        GPIO.output(17, False)
        GPIO.output(0, False)
        GPIO.output(10, False)
    elif (firstdig == 5):
        GPIO.output(4, False)
        GPIO.output(1, False)
        GPIO.output(0, False)
        GPIO.output(10, False)
        GPIO.output(22, False)
    elif (firstdig == 6):
        GPIO.output(4, False)
        GPIO.output(1, False)
        GPIO.output(0, False)
        GPIO.output(10, False)
        GPIO.output(22, False)
        GPIO.output(21, False)
    elif (firstdig == 7):
        GPIO.output(4, False)
        GPIO.output(17, False)
        GPIO.output(10, False)
    elif (firstdig == 8):
        GPIO.output(4, False)
        GPIO.output(1, False)
        GPIO.output(17, False)
        GPIO.output(0, False)
        GPIO.output(10, False)
        GPIO.output(22, False)
        GPIO.output(21, False)
    elif (firstdig == 9):
        GPIO.output(4, False)
        GPIO.output(17, False)
        GPIO.output(0, False)
        GPIO.output(1, False)
        GPIO.output(10, False)
        GPIO.output(22, False)

# Turn on lights for second digit
     if (sec 0):
        GPIO.output(14, False)
        GPIO.output(15, False)
        GPIO.output(18, False)
        GPIO.output(25, False)
        GPIO.output(24, False)
        GPIO.output(23, False)
     elif (sec 1):
        GPIO.output(18, False)
        GPIO.output(25, False)
     elif (sec 2):
        GPIO.output(15, False)
        GPIO.output(18, False)
        GPIO.output(24, False)
        GPIO.output(23, False)
        GPIO.output(11, False)
     elif (sec 3):
        GPIO.output(15, False)
        GPIO.output(18, False)
        GPIO.output(25, False)
        GPIO.output(24, False)
        GPIO.output(11, False)
     elif (sec 4):
        GPIO.output(14, False)
        GPIO.output(18, False)
        GPIO.output(25, False)
        GPIO.output(11, False)
     elif (sec 5):
        GPIO.output(14, False)
        GPIO.output(15, False)
        GPIO.output(25, False)
        GPIO.output(24, False)
        GPIO.output(11, False)
     elif (sec 6):
        GPIO.output(14, False)
        GPIO.output(15, False)
        GPIO.output(25, False)
        GPIO.output(24, False)
        GPIO.output(23, False)
        GPIO.output(11, False)
     elif (sec 7):
        GPIO.output(15, False)
        GPIO.output(18, False)
        GPIO.output(25, False)
     elif (sec 8):
        GPIO.output(14, False)
        GPIO.output(15, False)
        GPIO.output(18, False)
        GPIO.output(25, False)
        GPIO.output(24, False)
        GPIO.output(23, False)
        GPIO.output(11, False)
     elif (sec 9):
        GPIO.output(14, False)
        GPIO.output(15, False)
        GPIO.output(18, False)
        GPIO.output(25, False)
        GPIO.output(24, False)
        GPIO.output(11, False)


while True:
    inputValue = GPIO.input(7)
    if (inputValue == True):
        stopcount = 1
         if ( 1):
            pass1 = time.time()
            time.sleep(.1)
         if ( 2):
            pass2 = time.time()
              - 2
            time.sleep(.1)
         if ( 0):
            SecPerClick = (pass2 - pass1)
            RotPerMi = 5280 / circ
            SecPerMi = SecPerClick * RotPerMi
            MPH = 3600 / SecPerMi
            MPH = decimal.Decimal(MPH)
            print(round(MPH,1))
            if (MPH < 10):
                if (MPH == 0):
                    lessthan10 = False
                else:
                    lessthan10 = True
                    MPHround = round(MPH,2)
                    firstdig = int(MPHround)
                    dec = MPHround - firstdig
                     sec * 10)
            else:
                lessthan10 = False
                firstdig = int(MPH/10)
                 sec - (firstdig * 10)

          + 1

    if (inputValue == False and stopcount < 200):
        stopcount = stopcount + 1
        if (stopcount == 200):
            firstdig = 0
             sec
            lessthan10 = False
            MPH = 0
            print(round(MPH,2))

    display(firstdig,secondig,lessthan10)
    time.sleep(.01)

 

Revise this Paste

Your Name: Code Language: