Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[python] voeg een nummer toe als waarde x > 0 is (RPi)

Pagina: 1
Acties:

  • RareAMV
  • Registratie: November 2012
  • Laatst online: 22-11 10:51
Ik zal proberen kort uit te leggen wat ik wil: ik heb een scriptje voor het uitlezen van de mcp 3008 (een chip die analoge signalen van een sensor omzet in digitale signalen, die de raspberry pi kan uitlezen). Nu werkt het script naar behoren. Maar ik wil dat het script ook telt hoevaak er licht waargenomen is. Nu heb ik het probleem dat dit script elke keer als er licht wordt waargenomen een 1 weergeeft, en als er geen licht is 0, dat is niet wat ik wil, ik heb ook al meerdere malen gezocht naar zo'n soort script, maar het wil niet werken.
Hier is nu mijn huidige script, ik moet wel er bij zeggen dat ik het niet zelf gescheven heb.
Ik zelf heb niet veel verstand van python, de enige programeer taal die ik een beetje beheers is php(basis).

Script:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/python
#--------------------------------------   
# This script reads data from a 
# MCP3008 ADC device using the SPI bus.
#
# Author : Matt Hawkins
# Date   : 13/10/2013
#
# http://www.raspberrypi-spy.co.uk/
#
#--------------------------------------

import spidev
import time
import os

global countl

# Open SPI bus
spi = spidev.SpiDev()
spi.open(0,0)

# Function to read SPI data from MCP3008 chip
# Channel must be an integer 0-7
def ReadChannel(channel):
  adc = spi.xfer2([1,(8+channel)<<4,0])
  data = ((adc[1]&3) << 8) + adc[2]
  return data

# Function to convert data to voltage level,
# rounded to specified number of decimal places. 
def ConvertVolts(data,places):
  volts = (data * 3.3) / 1023
  volts = round(volts,places)  
  return volts
  

  
# Define sensor channels
light_channel = 0


# Define delay between readings
delay = 0.01

# define start counting stuff
countl = 0
def counter():
  
  count1 = countl + 1
  return count1
   
    
while True:

  # Read the light sensor data
  
  light_level = ReadChannel(light_channel)
  light_volts = ConvertVolts(light_level,2)
  registrate = 0
  if light_level > 0 :
    registrate = counter()


  
  # Print out results
  print "--------------------------------------------"  
  print("Light : {} ({}V)".format(light_level,light_volts))
  print(registrate)
   
  

  # Wait before repeating loop
  time.sleep(delay)


Zouden jullie mij kunnen vertellen hoe ik dus een simpele opteller kan maken als een bepaalde conditie true is?

Verwijderd

Je hebt eigenlijk dus niets gedaan behalve een script zoeken en nu mogen anderen gaan zeggen hoe je iets simpels als een conditional moet schrijven?

Waarom stop je niet even met je Raspberry Pi, en ga je niet even leren programmeren? En dan niet meteen iets functioneels, maar gewoon bij de basis beginnen. Anders heb je alleen maar geleerd om hier je antwoorden te komen afhalen en kun je nog steeds geen letter programmeren. Want je beheerst ook geen basis-PHP als je deze vraag stelt.

  • Cartman!
  • Registratie: April 2000
  • Niet online
Het is een dusdanig klein en goed te begrijpen scriptje dat je hier met trial and error wel wat mee moet kunnen inderdaad. Ik kan je vast verklappen dat de counter er zelf al wel inzit.

Vergeet ook niet dat als je een counter gaat bijhouden deze weer reset naar 0 als je het script herstart en je niet een vorm van persistentie inbouwt.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

RareAMV schreef op zaterdag 25 januari 2014 @ 11:17:
Zouden jullie mij kunnen vertellen hoe ik dus een simpele opteller kan maken...
Regel 50 doet dat mooi voor.
...als een bepaalde conditie true is?
Regel 61 heeft daar weer een voorbeeld van.

Kwestie van de dingen die het script al doet eens goed bekijken en waar nodig aanpassen. Waar zit hem precies het probleem als je blijkbaar wél de basis van PHP kent? Conditionele structuren zijn zo'n beetje letterlijk les twee in elke taal, direct na "hello world".

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
En let ook even op het verschil tussen count1 en countl...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Goed gespot. :D

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1