AdaCore: Build Software that Matters
MWAC2020 Graphic Bg 1
Sep 29, 2020

Ada for micro:bit Part 3: Pin Output

Welcome to the Ada for micro:bit series where we look at simple examples to learn how to program the BBC micro:bit with Ada.

If you haven't already, please follow the instructions in Part 1 to setup your development environment.

In this third part we will see how to control the output state of a micro:bit pin by lighting an LED.

Wiring Diagram

For this example we will need a couple of extra parts:

  • A breadboard
  • An LED
  • A 470 ohm resistor
  • A couple of wires to connect them all

Wiring the LED directly from the output pin to ground will make it burn, so we have to add a resistor to limit the flow of current.

Digital out 1

Interface

To control the IO pin we are going to use the procedure Set of the package MicroBit.IOs.

procedure Set (Pin : Pin_Id; Value : Boolean)
 with Pre => Supports (Pin, Digital);

Arguments:

  • Pin : The id of the pin that we want to control as digital output
  • Value : A Boolean that says if we want the pin to be high (True) or low (False)

Precondition:

  • The procedure Set has a precondition that the pin must support digital IO.

We also use the procedure Delay_Ms of the package MicroBit.Time to stop the program for a short amount of time.

Here is the full code of the example:

with MicroBit.IOs;
with MicroBit.Time;
procedure Main is
begin
  --  Loop forever
  loop
     --  Turn on the LED connected to pin 0
     MicroBit.IOs.Set (0, True);
     --  Wait 500 milliseconds
     MicroBit.Time.Delay_Ms (500);
     --  Turn off the LED connected to pin 0
     MicroBit.IOs.Set (0, False);
     --  Wait 500 milliseconds
     MicroBit.Time.Delay_Ms (500);
  end loop;
end Main;

Following the instructions of Part 1 you can open this example (Ada_Drivers_Library-master\examples\MicroBit\digital_out\digital_out.gpr), compile and program it on your micro:bit.

Microbit digital out

See you next week for another Ada project on the micro:bit.

Hackster1600x400 1 3

Don't miss out on the opportunity to use Ada in action by taking part in the fifth annual Make with Ada competition! We're calling on developers across the globe to build cool embedded applications using the Ada and SPARK programming languages and are offering over $9,000 in total prizes. Find out more and register today!

Author

Fabien Chouteau

Profile small

Fabien joined AdaCore in 2010 after his engineering degree at the EPITA (Paris). He is involved in real-time, embedded and hardware simulation technology. Maker/DIYer in his spare time, his projects include electronics, music and woodworking.

Blog_

Latest Blog Posts