This is the sixth part of the meta-tutorial, where I talk about designing a cheap plant watering sensor. If you did not already read the first, second, third, fourth and fifth part please do it now. These parts contain a lot information which lead to this point of the tutorial. The fifth part ended with step 24, where I talked about calculating the total…
Tag: how
How to Design a Cheap Plant Watering Sensor (Part 3)
This is the third part of the meta-tutorial, where I talk about designing a cheap plant watering sensor. If you did not already read the first and second part, please do it now. These parts contain a lot information which lead to this point of the tutorial. The second part ended with step 14, designing a first prototype PCB. So…
How to Design a Cheap Plant Watering Sensor (Part 1)
In this article I will talk about how I designed a cheap plant watering sensor. My goal is some kind of meta tutorial, where you can see the steps involved from the initial idea to the final sensor. If you ever planed to create a own device, I hope this article give you some inspiration…
How and Why to Avoid Preprocessor Macros
While most naming conflicts in C++ can be solved using namespaces, this is not true for preprocessor macros. Macros cannot be put into namespaces. If you try to declare a new class called Stream, but somewhere in a header you include is a macro called Stream, things will break. While compiling your code, the preprocessor…
How to Debug Time Critical Code using an Oscilloscope
From time to time you have to debug time critical code. If you are using interrupts, you are interested in the actual performance on the code. This is especially true, if you are using timed interrupts. In this cases, using the serial interface is impossible. If you write to the serial interface, the whole timing…
How and Why to use Namespaces
Namespaces are a feature of C++ which address the problem of name conflicts. There is a “global” namespace, where everything lives which was declared without namespace. Especially the Arduino environment declares a huge amount of variables and constants there, so it is a good practice to put everything you write in a own namespace. Namespaces…