EEVblog

Поділитися
Вставка
  • Опубліковано 14 жов 2024

КОМЕНТАРІ • 289

  • @unebonnevie
    @unebonnevie 8 років тому +24

    Btw, just to be clear for folks, the 26ms that you divided by in your IRcarrier() function is THE PERIOD of the 38Khz. Freq = 1/Period, which means Period = 1/Freq = 1/38Khz = 0.0000263157 sec = 0.0263157msec = 26.3157usec, which is roughly 26usec.
    So, your code wanted 9000usec of 38Khz carrier freq means that "how many periods of 26usecs do I need to generate?", which means 9000usec/26usec = 346 periods, that is, 346 iterations of the loop in your IRcarrier() function.
    That's how the 38Khz carrier frequency is generated with an I/O pin.

    • @haideralikhan5947
      @haideralikhan5947 2 роки тому

      Thanks a lot. That's the only part I didn't understood

  • @cbranalli
    @cbranalli 9 років тому +7

    great work Dave.
    i'm an electrical engineer who has been out of the technical loop for 25 years.
    your videos are perfect for bringing somebody like me up to date.

  • @sagaertj
    @sagaertj 10 років тому +60

    If you don't have a digital scope, just connect the output of a photo diode to your line input of your pc's audio card and record the data.

    • @daver2355
      @daver2355 10 років тому +1

      thats a great idea!!

    • @macguionbajo
      @macguionbajo 10 років тому +11

      Dave R Good idea indeed but there's a limitation. The standard audio cards are made to sample from around 20Hz to 20000 Hz. That's not enough to see the actual carrier frequency, but its totally good enough to decode each button code. I just made this a couple of days ago, and I was able to decode every single button :D. Btw I used a free software that plots the mic input and lets you visualize interesting stuff like frequency gains.

    • @Inspironator
      @Inspironator 7 років тому +2

      What was the name of that free software you used, please?

    • @Chriva
      @Chriva 7 років тому +1

      There are soundcards capable of 24 bit @ 192khz. That ought to be enough for things like this :)

    • @marlonmartins82
      @marlonmartins82 7 років тому +6

      I just did this, as my receivers did not make a proper capture of the signal. using a standard sound card was able to clearly see the codes with a simple ir receiver (2 pin on mic input). my air conditioner had a 36-bit code, so I made a few modifications to the code posted here, adjusted the initial timings (assumed a 38khz carrier) and bam! working fine! captured the output to match the original remote, and from there I refined the timings. (i did not have an oscilloscope). an arduino pro mini 3.3v did the job perfectly

  • @GuardedDragon
    @GuardedDragon 10 років тому +57

    "The old fashioned way" : A digital oscilloscope. :D

    • @debasish2205
      @debasish2205 3 роки тому

      I understand your concern, his perception is relativistic

  • @Inspironator
    @Inspironator 7 років тому +3

    What I enjoyed about this video is not the programming, although that is always instructive, but the reverse engineering of the raw pulses into a carrier freq., pulse codes, NEC standard... Big thumbs up video for newbie hackers and those who just want to understand how things work! Are there many major IR coding standards besides NEC?

    • @benverdel3073
      @benverdel3073 6 років тому

      Another very well known one is RC-5 (wikipedia.org/wiki/RC-5). It runs offically on a carrier of 36kHz, but a lot of manufacturers used 38 due to being misinformed or lazyness. It works anyhow. The bits are a fixed lenght where the direction (rising or falling) of the slope in the middle defines it's value.
      The toggle bit Dave talks about is used for ch+ and ch- for example. It prevents to skip 5 channels if you keep the button a bit to longue.

  • @bennydontplaythat
    @bennydontplaythat Рік тому

    Thanks for this video Dave! Your code is much more elegant and easier to understand than any of the IR libraries online. I was able to modify it to duplicate a Sony AV remote and it worked!

  • @MikeSims70
    @MikeSims70 5 років тому

    By far one of the best explanations of IR signaling I've ever seen or read ... I definitely understand it 50% better than I did before watching the video ... but I am still uncertain how this knowledge can be applied to different protocols such as Sanyo, Sony etc. I'm going to power up the scope and see what I can figure out. Thank you for once again producing a quality electronic tutorial.

  • @EEVblog
    @EEVblog  11 років тому

    As I pointed out to countless people, yes the previous hack was much simpler and faster, that's why I did it originally. But this isn't too hard, even if you have to write your own IR library as I showed, but yes, you need at least some programming knowledge. You can just cut'n'paste code though of course.

  • @PA3CSX
    @PA3CSX 2 роки тому

    Thanks Dave!
    i used your code to make a AC ON/OFF control for the Dometic HB2500 Airco. As far as i known no replacement remote controls are available for this Dometic HB2500 so i am making my own to help out a neighbour. He was told to buy a new Airco for his RV when his remote control broke down.
    Greetings from the low lands :-)

  • @StephenArsenault
    @StephenArsenault 4 роки тому +1

    David - it’s an older video but I found it really useful! I’ve been recording a custom protocol used on original Macintosh keyboards (pre ADB) and plan to do an Arduino implementation. Your segment about using the Arduino and pitfalls to be mindful of confirmed the best practices I was anticipating - thank you!

  • @EEVblog
    @EEVblog  11 років тому

    An Arduino sketch IS in native C. It's just calling an abstracted routine to write to the IO pin. You can simply bypass that if you want and the sketch will give you the exact same speed as AVR studio.

  • @plecto1234
    @plecto1234 11 років тому +1

    I recently made a remote control and IR receiver for dimming six leds individually. Used a timer to create the carrier signal and used the UART with a baud rate of 2400 to send the information, worked liked a charm :D Each transfer consisted of four bytes, the first and last byte are address bytes, I hardly get any bit error :)

  • @EEVblog
    @EEVblog  11 років тому

    As you saw in the previous video, I am using the Arduino for the matrix display, it came with an Arduino driver and connection board.

  • @EEVblog
    @EEVblog  11 років тому

    Yeah, I deliberately wanted to do that, and was hoping the digitalWrite routine would be slow enough to show that. It didn't let me down!

  • @ShopperPlug
    @ShopperPlug 2 роки тому

    Excellent explanation, thanks for showing how things actually work by theory using the oscilloscope.

  • @carlarrowsmith
    @carlarrowsmith 9 років тому +7

    Brilliant, explained so well and in just the right level of detail. Thanks Dave!

  • @HeyBirt
    @HeyBirt 8 років тому

    If you want to see some truly twisted IR encoding look at the MILES 2000 a.k.a. military laser tag. The older system used a relatively slow IR signal and when they decided to update things they still wanted to be able to use the old gear so they snuck in the new bits inside the existing bits. As I recall it was something like they split up the high time from one 'long' bit for the old system to many short bits for the new system. The old receivers would filter out the new fast bits and still work just fine and the new receivers would be able to 'see' the additional data.
    Since it did not add value to the project we were working on at the time to decode the actual MILES 2000 signals we skipped it (we were adding haptic feedback to the soldiers gear so they would feel where they were hit.)

  • @87knox
    @87knox 11 років тому

    Amen to that. This channel is really getting good with all the how-tos as opposed to teardowns, mailbags, and rants (not that those aren't appreciated).

  • @EngineeringVignettes
    @EngineeringVignettes 11 років тому

    A good little bit on reverse engineering. I like the fact that you pointed out something that not many newcomers (to programming) catch; the fact that subroutine calls do not take zero time to execute, especially when they have to change registers or interface to the real world... usually not a big deal, unless you are writing tight timing loops, and then it really matters. Good job.

  • @EEVblog
    @EEVblog  11 років тому

    IR LED's draw as much current as you give them, they don't "take" or "draw" current. You force the required current into them with a suitable dropper resistor.

  • @TheBananaPlug
    @TheBananaPlug 11 років тому +1

    This is exactly how a fundamentals video should be done. Well played Dave, a great combination of theory, practical and how to salvage stuff from everyday consumer junk. I dont have enough thumbs to put up.

  • @Vorsteven
    @Vorsteven 11 років тому

    That would be the more efficient approach, but I think that this video is more about how to use your gear to reverse-engineer or diagnose a serial protocol and how to implement it in A microcontroller. The IR protocol is just a special case and Dave did a good job by not introducing PWM here...

  • @kf7tkj
    @kf7tkj 11 років тому +1

    Dave thank you for this video, I just got my first oscilloscope and this made my day for another semi beginner! The protocol explanation was great it helps me put what I have learned about protocols into real world examples! Thanks again!

  • @Tigrou7777
    @Tigrou7777 8 років тому

    Great video. For solving the timing issues what about :
    1) Generating the signal inside an ISR with proper timer setup. Signals might be a little bit too late (because of the delay between the ISR and the signal is finally outputted on the pin) but at least it wont drift over the time.
    2) using UART

  • @MrRoyzalis
    @MrRoyzalis 10 років тому +2

    It's easy to throw a video onto UA-cam. Not as much when you take the extra time to make the video concise yet meaty - like this video; well done.

  • @frollard
    @frollard 11 років тому

    I ran into this style problem (the timing of a carrier frequency) when driving led strands over software spi; I learned a valuable lesson about digitalWrite that day. Very cool stuff. I would really like to have seen a quick note in the video reminding people that the more human friendly code is REALLY time-inefficient on these limited platforms. At least the reminder is in there about what caused the problem.

  • @EdBordin
    @EdBordin 7 років тому

    I know this is an old video, but for anyone watching that's having trouble getting the carrier frequency right, another approach would be to use a PWM channel and toggle it on and off rather than "bit banging" the carrier. The IR libraries Dave mentioned at the start likely do this. I'm sure Dave just chose this method because the code is easier to understand

    • @johnnyboy2000
      @johnnyboy2000 7 років тому

      I couldn't get any IR libraries to work on the ESP8266

  • @dalenassar9152
    @dalenassar9152 6 років тому

    Dave, there exists (or did) an IR receiver with a carrier frequency of 455kHz. I have succeeded in sending audio over this IR module (something like a TL9000--but I seriously doubt that's the exact part number since it's been so long). Most interesting of all is I managed to send DTMF codes over it (to a DTMF decoder) for remote control applications, and even multiplexed and patented it after I added a feature that allowed more than one DTMF encoder button to be pressed and held continuously with a receiver modification to match. Then this wonderful high frequency IR decoder was discontinued--go figure. I think I got all mine from Vishay...still got a few of them though.

  • @mike94560
    @mike94560 9 років тому +11

    I have been experimenting a LOT with this crap. It's a real pain in the butt to get enough documentation to know what the heck to do. I have spent a lot of time accumulating documentation.
    I'm doing it with a PIC chip. Specifically a PIC16F1503. I'm so close I can taste it. I have a handheld Qunda IR Remote Control Decoder. It sees and decodes my PIC's IR output but the TV is not. More tweaking needed.
    One thing I noticed is that you assume is that the 38Khz duty cycle is 100%. ie., 50% ON, 50% OFF. It's not.
    33% on time is more like it. Keeps LED's from burning up. They are usually pulsed at some insanely high currents.
    I could write a book. Argh. Thanks for the video!

    • @yalilboya
      @yalilboya 5 років тому

      mike94560 I’m also working on a project that deals with a PIC16F883 and IR , how far did you get !? Can I see your results and how you got to where you wanted

  • @johnnyboy2000
    @johnnyboy2000 7 років тому

    That's a great job done. I had been trying to do this in software on an ESP8266. Thanks to your informative video, especially the debug part, I am able to send IR from the ESP8266 and ultimately anywhere in the world!

  • @msaad42
    @msaad42 4 роки тому

    Again got help from here after so many years, thanks Dave , you are a legend.

  • @VintageLabSilvioPinheiro
    @VintageLabSilvioPinheiro 11 років тому

    Dear Dave Master,
    Thank you for sharing your vast knowledge with us so enthusiastic and smart.

  • @kevincozens6837
    @kevincozens6837 11 років тому

    Thanks for the video, Dave. My cable TV provider is going all digital so I need to use an external digital decoder box to be able to pick up all the old channels. I've been wanting to make a device that can send the IR codes to the external box. This video has certainly helped me to work out how to decode the IR signals sent by the remote.

  • @tocsa120ls
    @tocsa120ls 11 років тому

    Excellent video Dave, also a representation why I use AVR Studio and native C to do my projects. When you do a simple loop, toggling an output on the uC, the Arduino sketch gives about ~200kHz square, compared to a C loop's ~3MHz! Much faster and not much more complicated. Cheers!

  • @aev-g8c
    @aev-g8c 11 років тому

    According to the C11 standard: "The result of E1

  • @scancool
    @scancool 11 років тому

    this is pretty cool, when I got my first car, I used my remote control watch to start my car and open the doors, I didnt know about NEC protocol so I was decoding hex code, it was working pretty well, but I wish I had new about this decoding technique

  • @Ruddy761
    @Ruddy761 10 років тому

    You could use one of the AVR timers to generate the carrier with an isr routine to blink the led, then just enable/disable the blinking in the isr for your bit times.

  • @HansVanIngelgom
    @HansVanIngelgom 11 років тому +1

    a) I would have used a PWM signal to generate at least the clock signal, so you don't have to tweak the timing. The 'professional way' would be to write the whole IR-signal generating code in the overflow interrupt of the PWM timer. But don't worry, for a demo your code is more than adequate.
    b) It could have used a little more cowbell.

  • @TheBadFred
    @TheBadFred 11 років тому

    Great video! I like the fact that you use the arduino platform, because it is easier to write code for than the usual development systems from AVR or Microchip.

  • @EEVblog
    @EEVblog  11 років тому

    So that people can just cut'n'paste setup routine into other code, it's more portable. setup is an Arduino specific thing. The while loop at the end stops it from running more than once. It's example code.

  • @worldgeektube
    @worldgeektube 11 років тому

    @bcsupport Dave programmed his Arduino with a 'sketch' written in the "processing" language (roughly speaking a subset of Java which is compiled to byte code and then interpreted on the device) - it's not ANSI C. It's possible to program the Arduino with pure C but mostly not necessary.

  • @EEVblog
    @EEVblog  11 років тому

    This is a library, and I think it's simple enough beginners can use it.

  • @joe72205
    @joe72205 11 років тому

    I guess the long burst up front is for the receiver to set its AGC.
    And the stop bit so every bit is followed by a leading edge, so you can just measure the time between leading edges.
    Its interesting to think about how the transmission is often designed for the receiver to receive it cheaply and reliably, rather than for the ease of the transmitter

  • @elboa8
    @elboa8 11 років тому

    Really makes a nice change from teardowns. Nce job. Thanks Dave.

  • @EEVblog
    @EEVblog  11 років тому +2

    Well, when it takes 3.5us to write to an output pin using the recommended method, that could best be regarded as "dog slow"

  • @Sinusoidal
    @Sinusoidal 11 років тому

    Huge thumbs up. I actually wanted to do a very similar project just the other day, I needed to clone a flimsy remote control. Thanks for the info, now I think I can tackle the task.

  • @gummansgubbe6225
    @gummansgubbe6225 6 років тому

    Thanks so much for this. With this code and some remote control codes I found on the web I managed to regain remote control of my amplifier. It worked on the first try.

  • @timfairfieldAETestandMeasure
    @timfairfieldAETestandMeasure 8 місяців тому

    Well explained and from many ways of capturing!!!

  • @Vorsteven
    @Vorsteven 11 років тому

    Thanks Dave! You managed to put so many different topics into a simple project like this and kept it easy enough for starters to follow. Great Video, I really enjoyed it :)

  • @EEVblog
    @EEVblog  11 років тому

    If you want to run for 1000us, and each loop is 26 us, you need to divide 1000 by 26 to get the number of loops.

  • @nathanschenk8886
    @nathanschenk8886 6 років тому

    I've done this once. My solution for the carrier was to use the PWM module in the PIC I was using at the time to generate it. One side of the LED went to the PWM output pin, the other went to a pin with the data.

    • @nathanschenk8886
      @nathanschenk8886 3 роки тому

      @Peter Mortensen The led was sourced from the data pin, and sinked into the pwm pin. Two pins, one driving the high side, the other driving the low.

  • @undercrackers56
    @undercrackers56 11 років тому

    Really interesting and informative. I am sure that various experts can take pot-shot criticism at various details. However it takes real cojones to produce and share this. Thank you.

  • @sandermans15
    @sandermans15 11 років тому

    Hey Dave GREAT video! i just have three question about your code: Why did you make your own void IRsetup instead of using the normal void setup? you added your IRsetup to be called in your void loop and added commontary that you only need it to call setup once but what stops the loop from executing that setup over and over again? Also why do you prefer to use so many voids instead of putting all your code in the void loop? I'm not saying your code is wrong. I just wonder why you prefer this way

  • @0LoneTech
    @0LoneTech 11 років тому +1

    The other fix would be to replace Arduino's digitalWrite routine with one that optimizes down to the single machine instruction it should be. Considering the "digitalwritefast" implementation is entirely source compatible and has been around for years, I've no idea why the Arduino team hasn't already included it.

  • @worldgeektube
    @worldgeektube 11 років тому

    Thanks @Vorsteven for the clarification. Yes I was confused by reading that the IDE is based on the Processing IDE and that Wiring was influenced by the Processing language. My bad, sorry.

  • @EEVblog
    @EEVblog  11 років тому

    It recommends that for 8 bit data, but if you need 16bit address or 16 bit data, then you don't need to send the inverse.

  • @Laogeodritt
    @Laogeodritt 11 років тому

    To be precise, two clock cycles on the Atmega328, if the register and bit to set are immediate/constant. SBI instructions are nice. =]

  • @DJSolitone
    @DJSolitone 11 років тому +1

    Excellent video. You even managed to review some code!! ;-) Great complete implementation of a smart solution to your specific need. But yeah I'm always a bit wondering as how fast these Arduino can actually deal with "real time" processing.

  • @r1obyscar
    @r1obyscar 5 років тому +1

    the BEST EVER tutorial about IR works. TOP! thanks!

  • @Vorsteven
    @Vorsteven 11 років тому

    HIGH is just a macro that gets substituted by the preprocessor with "1" before comiling the code. So you will get exactly the same result, no matter if you use "digitalWrite(IRLED, HIGH)" or "difitalWrite(IRLED, 1)":
    avr/cores/arduino/Arduino.h:#define HIGH 0x1

  • @thomaslenarz3195
    @thomaslenarz3195 11 років тому

    Thanks a lot Dave! Awesome video :-). I was surprised that connecting the IR LED directly to the output pin actually works. My readings said that one has to use a transistor, because IR LEDs draw more current than normal LEDs. So I went directly for a transistor circuit, but never brought it to work. Does your LED light up as bright as the original remote-control, when filmed with a digicam? I thought the brightness was my problem, but now I think I should look for the problem in the IR-Code...

  • @liviuoros1184
    @liviuoros1184 11 років тому

    Where is the Double LIKE / Double Thumb UP button ? :) I need to discover the code for a function of the remote and had not a clue how to do it. You saved me hours of head scratching. An now i know to emulate the command. Thank you !

  • @AMalas
    @AMalas 5 років тому

    Hey dave, quick comment about your code there. The NEC protocol recommends a duty cycle of between 25 to 33% for the carrier, to conserve power.

  • @TheOriginalEviltech
    @TheOriginalEviltech 11 років тому

    You can also do it with an ISD1616BSY audio recorder at a high sampling rate. No programmer or programing required.

  • @VintageLabSilvioPinheiro
    @VintageLabSilvioPinheiro 11 років тому

    Andy Collinson in your blog have a nice ir project.

  • @eddraper
    @eddraper 11 років тому

    Well done Dave. This video is really useful. The setup and execution is a lot harder on your end I'm sure, but we get real meat - soup to nuts! Thank you for your efforts and please do many more like this. This is 100 times more valuable than a review video...

  • @lordzeppo
    @lordzeppo 11 років тому

    Excellent point! Would you mind making a video about this particular topic? I was wondering how exactly to "port" a Arduino IDE sketch into using base functions instead.

  • @Blaff3tuur
    @Blaff3tuur 11 років тому

    For starters Arduino is perfect and I think a big part of viewers are starters so yeah. Not everyone is an electronics expert like you.

  • @foldi001
    @foldi001 11 років тому

    Hello Dave,
    a great video!!
    For me it was always something mystical, when I read of decoded protocols. Thanks for your explanations.

  • @alexanderet98
    @alexanderet98 11 років тому

    This wold make a great new weekly segment! Great video :)

  • @Mrkirill578
    @Mrkirill578 11 років тому

    Though the length of '1' and '0' is not the same, the NEC protocol defines that you should send an inverted message as well, so the length of the whole transmission is constant., 67.5mS

  • @NiranjanaMurthyC
    @NiranjanaMurthyC 9 років тому

    Really impressive, informative with full clarity. Thank you.

  • @yellowcrescent
    @yellowcrescent 11 років тому

    I was just trying to capture the IR codes for some obscure DVD player (an ugly cyan/silver colored beast from RITECH). Just about no info online and you NEED the remote. I have the non-functional remote, but the stale-cheese looking resonator for the mystery COB's clock and IR carrier generation is dead. Did find it uses 36kHz carrier online... Maybe capture the data to the driving NPN's base (carrier freq is wrong, but should be able to scale it) then hand feed to LIRC for decoding. Hopefully!

  • @EEVblog
    @EEVblog  11 років тому

    Of course, yes, that's possible.

  • @TheJMan11000111
    @TheJMan11000111 11 років тому

    What a bloody great video Dave.

  • @sysmatt
    @sysmatt 11 років тому

    Great real world project, simple approach. Loved it. Brace yourself for 1000 alternate opinions on how everyone else wants you to skin that cat.

  • @chemtype
    @chemtype 11 років тому

    More logic analyser videos!!!
    I'd love to see you decode some code on an older videogame console or an old PC.

  • @JuanMaEle
    @JuanMaEle 3 роки тому

    Great video, just what I needed to understand how IR remote controls work :)

  • @EEVblog
    @EEVblog  11 років тому

    I tried to make it as complete yet short as possible.

  • @allbeit222
    @allbeit222 7 років тому

    Excellent video. Can you tell me does this relate in any way to the code number you have to enter in a universal remote to get it to work with your TV ?

  • @CryptoWorld2
    @CryptoWorld2 4 роки тому

    Always great videos...ive watched you even before i started engineering and you're the real deal!

  • @KananDethin
    @KananDethin 9 років тому

    Great Master, thank you. I am still searching for GPX-Device signals.

  • @Reptex_cs
    @Reptex_cs Рік тому

    I've been trying to control my AC for a week now, exhausted, and still can't figure it out. But I know I'm close! I will try your code now, but I'm not sure where you got your IRcode from. Did you convert Adress or Command to binary or what? Would appreciate your quick input mate, thanks alot.

  • @bloomtom
    @bloomtom 11 років тому

    Bit banging is sometimes cheap and effective. In non-critical applications like consumer remotes, I'd say slamming signals out of a GPIO is perfectly acceptable.

  • @bobhaha
    @bobhaha 11 років тому

    Dave you should have used DigitalWrite(IRLEDpin, 1) instead of using HIGH. It is considerably quicker than HIGH. That way you would not need to guesstimate the delay like you did. Give it a go and see if it helps... I suspect it would be much quicker.

  • @EEVblog
    @EEVblog  11 років тому

    How? Isn't HIGH just a constant used as a passed variable? If so it would make no difference at all to the digitalWrite function speed.

  • @dmastuff
    @dmastuff 11 років тому

    I miss this kinda thing, awesome vid

  • @claudiupanoiu6064
    @claudiupanoiu6064 Рік тому

    Thank you for this video, it was explained very easily and simply. 🤝

  • @EEVblog
    @EEVblog  11 років тому

    Yes, but then the code wouldn't be as portable, or usable on chips without available PWM, or as understandable to beginners. Bit bang is always a nice way to explain it first IMO.

  • @davidmarks509
    @davidmarks509 7 років тому

    We are going to do it the old fashion way ... Let me grab my digital scope lol. Good fun tutorial I think I have a few remotes I can play around with here.

  • @sandermans15
    @sandermans15 11 років тому

    Aah I see! thx for your explenation and fast response! I learned a lot about the code and how to send it. I allready knew a bit of IR but not how to send the codes. I only used my arduino once to decode IR and turn a LED on and off via my logitech harmony wich i programmed for a old sony VCR wich are the easiest to decode. anyways thank you very much for the video and your quick respose really apreciate it : )

  • @SaturdayScience
    @SaturdayScience 11 років тому

    I guess we all code differently. Thanks for using a unsigned long to hold the binary message and not int bits[32] as appears elsewhere on the web.
    Is it necessary to repeatedly call IRsetup()? Could that be put in Setup()? The LED is OFF at the end of IRCarrier().
    Thanks for the fulsome explanation, clear readable code (not C obscure) and your comments on available libraries, Murphy's law and sampled waveforms.

  • @EEVblog
    @EEVblog  11 років тому

    What's wrong with that? It means people know they can use it. What would you prefer?

  • @EEVblog
    @EEVblog  11 років тому

    The only pony trick left with this app is to use PWM to do it instead, or maybe using all 74xx logic? :->

  • @kevinjohansson3923
    @kevinjohansson3923 3 роки тому

    Amazing video with some nice tips here and there. Great stuff.

  • @watawonderfulworld
    @watawonderfulworld 8 років тому

    yup... awesome is the word...
    one thing Dave,
    It seems quite obvious, but just so as to clarify my understanding: the signal (waveform) at the IR receiver output is exactly inverse of the signal that is fed into IR transmitter. Is that right?

  • @aev-g8c
    @aev-g8c 11 років тому

    In binary 0x80000000 is one followed by 31 zeroes. When you do an and operation with that on a 32-bit number you end up with its most signifigant bit. Within the if statement in the code, if the MSB is one the the condition evaluates as true, if zero then false. After that there is code

  • @GameInterest
    @GameInterest 5 років тому

    Thanks for this! I love tutorials like this.

  • @stuner1337
    @stuner1337 11 років тому

    Yeah. Learning how to use Git is quite difficult (even though Github helps a lot). Once you figured it out it's very useful for any kind of continued development (it works great with Eagle schematics for instance, or of course all kinds of source code).

  • @joelie83
    @joelie83 10 років тому

    The slow part of the loop is surely the divide by 26 in the conditional, which is executed every iteration of the loop. I'll bet the division is slower than the digitalWrite() call. The division should be pulled out of the loop.

    • @cjveeneman
      @cjveeneman 9 років тому

      the compiler optimizes that out already