In control of urban traffic systems, synchronization of traffic lights is one of the measures used to improve the throughput, as it allows vehicles to pass an arterial without stop. Classical approaches are off-line, top-down planned and centralized. Moreover, they are inflexible since they cannot cope with dynamic changes in the traffic flow or depend too much on communication. This paper describes a bottom-up simulation approach where each traffic light is an agent and behaves like a social insect. Our approach is simulated using a microscopic model, with a scenario adapted from a city in Brazil. The volume of vehicles in an arterial and its vicinity was simulated under different situations: without any coordination between traffic lights, with fixed coordination, and with the approach proposed here, which is more flexible: traffic lights adapt to the current volume of vehicles by selecting the appropriate signal plan. Besides, it considers not only the traffic in the arterial, but also in secondary streets.