Jump to content

NodeMCU Projects: Difference between revisions

Line 2:
__TOC__
<br/>
 
 
= Small Projects =
 
== Playing with GPIO ==
 
<syntaxhighlight lang="python">
import machine
import time
import urandom
 
pin = machine.Pin(2, machine.Pin.OUT)
 
def toggle(p):
p.value(not p.value())
 
while True:
time.sleep_ms(urandom.getrandbits(8))
toggle(pin)
</syntaxhighlight>
 
 
== Fading an LED ==
<syntaxhighlight lang="python">
import time, math
import machine
 
led = machine.PWM(machine.Pin(2), freq=1000)
 
def pulse(l, t):
for i in range(20):
l.duty(int(math.sin(i / 10 * math.pi) * 500 + 500))
time.sleep_ms(t)
 
while True:
pulse(led, 20)
</syntaxhighlight>
 
 
== Control a hobby servo ==
#Hobby servo motors can be controlled using PWM.
#They require a frequency of 50Hz and a duty between about 40 and 115, with 77 being the center value.
 
*Manual Movements
<syntaxhighlight lang="python">
servo = machine.PWM(machine.Pin(12), freq=50)
servo.duty(40)
servo.duty(115)
servo.duty(77)
</syntaxhighlight>
 
*Random movements:
<syntaxhighlight lang="python">
servo = machine.PWM(machine.Pin(12), freq=50)
while True:
servo.duty(urandom.getrandbits(8))
time.sleep(1)
</syntaxhighlight>
 
== One Wire DS18B20 Temp Sensor ==
<syntaxhighlight lang="python">
import time
import machine
import onewire, ds18x20
 
# the device is on GPIO12
dat = machine.Pin(12)
 
# create the onewire object
ds = ds18x20.DS18X20(onewire.OneWire(dat))
 
# scan for devices on the bus
roms = ds.scan()
print('found devices:', roms)
 
# loop 10 times and print all temperatures
for i in range(10):
print('temperatures:', end=' ')
ds.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds.read_temp(rom), end=' ')
print()
</syntaxhighlight>
 
 
Cookies help us deliver our services. By using our services, you agree to our use of cookies.