How to avoid delay() – create a custom Arduino class – Part 2

In the previous blog post we learned how to avoid delay() if necessary. It would be very convenient when we are able to add a layer of abstraction to this code so when can easily reuse it if we need it.

Before we can begin creating a custom Arduino class, we need to create these files:

  • SCAsyncTimer.cpp ( = the implementation, this is where the most of the code goes)
  • SCAsyncTimer.h ( = the header, this is some kind of a “table of contents” for our class)
  • keywords.txt ( = optional the keywords, here we can specify the keywords which then get colored in the IDE)

Create these files either in your sketch directory (so its only available in this sketch – restart the IDE so the Continue Reading →

15. November 2016 by Marius
Categories: Arduino, Programming, Tutorials | Tags: , , , | 1 comment

Arduino and how to avoid delay() – Part 1

The main problem with using delay() in your Arduino sketch is simply: it will block the whole system for the amount of time you specified. Since your microprocessor is pretty fast compared to most of the delay() time he is very bored, gets lonely and depressive if you do not care for him…

While that could be okay for most circumstances and projects, when going Continue Reading →

14. November 2016 by Marius
Categories: Arduino, Programming, Tutorials | Tags: , , | 1 comment

Arduino Mood Lamp / LED Cube

LEDCube_005

I wanted to build an Arduino mood lamp that worked without any buttons and is customizeable for any mood / light situation. So I did a little research and found about the posibility to trigger input on the Arduino with something called “capacitive sensing” and began to design a lamp with 3 input sides which are separate Continue Reading →

09. November 2016 by Marius
Categories: Arduino, Projects | Tags: , , , , , , , | Leave a comment

Freeware OLED Pixel generation software “OLED Pixxler”

OLED Pixxler

I started a little Arduino project involving an OLED (SSD1306) display using the u8glib library. I faced the issue that I wanted a few custom pixel / bitmaps for the project and also wanted to propably animate the grafics… and its very inconvenient to write these little pixel fellas by hand converting bitmaps to hex representation not Continue Reading →

29. October 2016 by Marius
Categories: Arduino, Programming, Software | Tags: , , | 1 comment

Arduino Mini CNC Machine

010_Title

To be honest: in the beginning I had no idea that there is such a thing like CNC machines. CNC stands for “Computer Numerical Control” and there are a ton of different machines out there ranging from 3 up to 5 axis types. But at the moment I realized that I could plan and build things virtually and let the machine do the ultra tiny Continue Reading →

24. May 2016 by Marius
Categories: Arduino, Projects | Tags: , , , | 1 comment

Interface a cheap OLED (SSD1306) from eBay with an Arduino

ssd1306_01

There are a couple of cheap OLED displays available on eBay and I really struggled to get them to work with the Arduino. Some of them have the manufacturer “Heltec” printed on the circuitboard and most of them Continue Reading →

25. December 2015 by Marius
Categories: Arduino, Tutorials | Tags: , , , , | Leave a comment

C++ Template Arduino investigation

I tried to simplify and refactor some of my code for a new Arduino project lastly and came up with some interessting programming concepts in C/C++ I never heard of before my Arduino adventures.

The Problem

At first I wanted to get rid of my String class coding. Its evil. As far as I know its not very efficient to work with in the Arduino (C/C++) programming environment especially in embedded systems like the small ATMegas and ATTinies. Its slow and allocates dynamic memory which could lead to memory heap fragmentation etc.. Short: they suck! 😉 Better use Chars but unfortunately they arent like the fluffy little Strings, they are spikey hedgehogs… Since Chars arent that friendly like Strings with all theire nice methods I needed to write some convenience methods by my own.

After a very nerdy weekend in my nerd cave, some experimentation and asking questions in the Arduino forum (best forum and community _ever_ :) ) I learned Continue Reading →

26. November 2014 by Marius
Categories: Arduino, Programming | Tags: , | Leave a comment

CNC speed calculation

This formula is nothing very special but I had to think some time about it. 😉 For my CNC I need to calculate the speed of the machine in mm/min (seems this is the standart measuring unit at least in metric systems). Here it is:

An example:
– Threadpitch: 0.8mm
– Steps/Revolution: 200 Steps
– Microseconds/Revolution: 1.000 micros

Hope this is correct! 😉

04. August 2013 by Marius
Categories: Programming | Tags: , , | Leave a comment

Linear interpolation

As I researched about my own custom G-Code interpreter on the Arduino I realised that it was neccesary to interpolate between two points in space. Thats because when both stepper motors step at the same time at the exact same speed a target value is reached too soon when one coordinate is not equal to the other ( x != y).

To avoid that problem one has to interpolate between the points and check if the interpolated value has to in- or decrement. I came up with this function to return an interpolated coordinate on the vector between the points:

Some reference and further reading on that topic here!

15. July 2013 by Marius
Categories: Programming | Tags: , , | Leave a comment

The TurnMachine

c040_prj0007_TurnMachine_00I thought its time to learn something new in my sparetime so the TurnMachine is my first attemp in building usefull machines with the help of the Arduino development plattform. Arduino is an electronics plattform made especially for artists and people who want to learn microcontroller programming the first time without the hassle of studying electronics in depth. I build this as a finger exercise for Continue Reading →

15. July 2013 by Marius
Categories: Projects | Tags: , , | Leave a comment