Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
f09ffdb1
Commit
f09ffdb1
authored
Jan 28, 2015
by
Vladimir Dronnikov
Browse files
IR send module added
parent
1346cbbc
Changes
1
Hide whitespace changes
Inline
Side-by-side
lua_examples/irsend.lua
0 → 100644
View file @
f09ffdb1
------------------------------------------------------------------------------
-- IR send module
--
-- LICENCE: http://opensource.org/licenses/MIT
-- Vladimir Dronnikov <dronnikov@gmail.com>
--
-- Example:
-- require("irsend").nec(4, 0x00ff00ff)
------------------------------------------------------------------------------
local
M
do
-- const
local
NEC_PULSE_US
=
1000000
/
38000
local
NEC_HDR_MARK
=
9000
local
NEC_HDR_SPACE
=
4500
local
NEC_BIT_MARK
=
560
local
NEC_ONE_SPACE
=
1600
local
NEC_ZERO_SPACE
=
560
local
NEC_RPT_SPACE
=
2250
-- cache
local
gpio
,
bit
=
gpio
,
bit
local
mode
,
write
=
gpio
.
mode
,
gpio
.
write
local
waitus
=
tmr
.
delay
local
isset
=
bit
.
isset
-- NB: poorman 38kHz PWM with 1/3 duty. Touch with care! )
local
carrier
=
function
(
pin
,
c
)
c
=
c
/
NEC_PULSE_US
while
c
>
0
do
write
(
pin
,
1
)
write
(
pin
,
0
)
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
+
0
c
=
c
*
1
c
=
c
*
1
c
=
c
*
1
c
=
c
-
1
end
end
-- tsop signal simulator
local
pull
=
function
(
pin
,
c
)
write
(
pin
,
0
)
waitus
(
c
)
write
(
pin
,
1
)
end
-- NB: tsop mode allows to directly connect pin
-- inplace of TSOP input
local
nec
=
function
(
pin
,
code
,
tsop
)
local
pulse
=
tsop
and
pull
or
carrier
-- setup transmitter
mode
(
pin
,
1
)
write
(
pin
,
tsop
and
1
or
0
)
-- header
pulse
(
pin
,
NEC_HDR_MARK
)
waitus
(
NEC_HDR_SPACE
)
-- sequence, lsb first
for
i
=
0
,
31
do
pulse
(
pin
,
NEC_BIT_MARK
)
waitus
(
isset
(
code
,
i
)
and
NEC_ONE_SPACE
or
NEC_ZERO_SPACE
)
end
-- trailer
pulse
(
pin
,
NEC_BIT_MARK
)
-- done transmitter
--mode(pin, 0, tsop and 1 or 0)
end
-- expose
M
=
{
nec
=
nec
,
}
end
return
M
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment